总结2-字典表的使用

本文介绍了一种优化方法,通过减少代码行数提高字典标签转换效率。具体实现了从卡券表获取枚举值并将其转化为标签的过程,同时介绍了如何通过缓存机制减少数据库查询次数。

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

使用方式
1. 取到下拉框的枚举标签
2. 将卡券表中取到的枚举值转化为标签。
这里写图片描述
修改为:
这里写图片描述
9行代码改成一行了呢。
传入参数:
枚举类型,字典类型,默认值为空

1. 如果枚举类型或者字典类型为空,返回默认值
2. 否则查找字典缓存
如果缓存为空,查找所有的字段值放入缓存。
3. 返回标签值

    @Transactional
    @Override
    public String getDictLabel(String value, String type, String defaultValue){
        if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(value)){
            for (Dict dict : getDictList(type)){
                if (type.equals(dict.getType()) && value.equals(dict.getValue())){
                    return dict.getLabel();
                }
            }
        }
        return defaultValue;
    }
    @Transactional
    @Override
    public  List<Dict> getDictList(String type){
        @SuppressWarnings("unchecked")
        Map<String, List<Dict>> dictMap = (Map<String, List<Dict>>) CacheUtils.get(CacheConstant.CACHE_DICT_MAP);
        if (dictMap==null){
            dictMap = Maps.newHashMap();
            for (Dict dict : dao.findAllList(new Dict())){
                List<Dict> dictList = dictMap.get(dict.getType());
                if (dictList != null){
                    dictList.add(dict);
                }else{
                    dictMap.put(dict.getType(), Lists.newArrayList(dict));
                }
            }
//          CacheUtils.put(CacheConstant.CACHE_DICT_MAP, dictMap);
        }
        List<Dict> dictList = dictMap.get(type);
        if (dictList == null){
            dictList = Lists.newArrayList();
        }
        return dictList;
    }
    <select id="findAllList" resultType="Dict">
        SELECT 
            * 
        FROM td_sys_dict 
        WHERE del_flag = #{DEL_FLAG_NORMAL} 
        ORDER BY type, sort, update_date DESC
    </select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值