一种数据字典表的创建方式

一种数据字典表的创建方式

注意创建表的规范

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我们可以通过接口修改,这样只需要修改数据库的值而不需改动代码
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。