注意创建表的规范
CREATE TABLE IF NOT EXISTS `sys_dict`( `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '主键id', `dict_type` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '字典类型', `dict_key` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '字典key', `dict_value` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '字典value', `sort` INT(10) NOT NULL DEFAULT '0' COMMENT '字典排序值', `add_uid` INT(10) NOT NULL DEFAULT '0' COMMENT '添加人', `update_uid` INT(10) NOT NULL DEFAULT '0' COMMENT '更新人', `add_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '删除标记', `remark` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '备注', PRIMARY KEY (`id`),
UNIQUE KEY `uniq_dict_type`(`dict_type`), -- 建表的时候建立合适的索引 KEY `idx_dict_key` (`dict_key`) )ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='数据字典表';
数据字典工具类
public class DictUtils {
private static SysDictMapper sysDictMapper = SpringContextUtils.getBeanByClass(SysDictMapper.class);
public static SysDictPo getDict(String dictType, String dictKey) {
SysDictPo sysDictPo = new SysDictPo();
sysDictPo.setDictType(dictType);
sysDictPo.setDictKey(dictKey);
return sysDictMapper.selectByTypeAndKey(sysDictPo);
}
public static String getDictValue(String dictType, String dictKey) {
SysDictPo query = getDict(dictType, dictKey);
if (query != null) {
return query.getDictValue();
}
return null;
}
}
数据字典的一个妙用是做一个开关
String value = DictUtils.getDictValue("switch",0);
Boolean switch = Boolean.valueOf(value);
if(switch){
//......
}else{
//.....
}
而dict_value我们可以通过接口修改,这样只需要修改数据库的值而不需改动代码