注意创建表的规范
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我们可以通过接口修改,这样只需要修改数据库的值而不需改动代码