注意創建表的規范
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;
}
}
數據字典的一個妙用是做一個開關
aelftksuqmcc.png
String value = DictUtils.getDictValue("switch",0);
Boolean switch = Boolean.valueOf(value);
if(switch){
//......
}else{
//.....
}
而dict_value我們可以通過接口修改,這樣只需要修改數據庫的值而不需改動代碼