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

本文介绍了一种规范的数据字典表设计方法,并通过示例展示了如何利用数据字典进行配置化的开关设置,以此减少代码改动,提高系统的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意创建表的规范

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值