注意創(chuàng)建表的規(guī)范
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 '創(chuàng)建時間',
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新時間',
`del_flag` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '刪除標(biāo)記',
`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='數(shù)據(jù)字典表';
數(shù)據(jù)字典工具類
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;
}
}
數(shù)據(jù)字典的一個妙用是做一個開關(guān)
String value = DictUtils.getDictValue("switch",0);
Boolean switch = Boolean.valueOf(value);
if(switch){
//......
}else{
//.....
}
而dict_value我們可以通過接口修改狂塘,這樣只需要修改數(shù)據(jù)庫的值而不需改動代碼