Java 数据字典的实现

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

在这里插入图片描述

概述

记得第一次接触数据字典还是第一个项目,是用简单的hashmap实现了,
现在做一个笔录吧,8年之久了,

需求:

1.本质就是hashMap的管理:
2,可以吧常见的属性信息,字段属性,常量等维护到这里去。可以认为constant的升级版。

设计思路

 @Autowired
    private SysDictDataMapper dictDataMapper;

    private static HashMap<String, String> hashMap = new HashMap<>();

    public static DictMap dictMap;

实现思路分析

1.从数据库中字典

 @PostConstruct
    public void queryDic() {

        dictMap = this;
        dictMap.dictDataMapper = this.dictDataMapper;

        System.out.println("初始化");

        List<SysDictData> dics = dictMap.dictDataMapper.selectDictDataAll();

        for (int i = 0; i < dics.size(); i++) {
            SysDictData dic = dics.get(i);

            String fieldName = dic.getDictType();
            String fieldValue = dic.getDictValue();
            String key = fieldName + "_" + fieldValue;
            String value = dic.getDictLabel();
            System.out.println(key + "=" + value);
            hashMap.put(key, value);
        }
    }

2.获取字典的数值

  /**
     * 获取字典
     *
     * @param fieldName
     * @param fieldValue
     * @return
     */
    public static String getFieldDetail(String fieldName, String fieldValue) {
        StringBuilder sb = new StringBuilder();
        StringBuilder keySb = sb.append(fieldName).append("_").append(fieldValue);
        String key = keySb.toString();
        String value = hashMap.get(key);
        return value;
    }

大概逻辑框架建立之后就剩下对应的填充数据数据库字段数值了。

拓展实现

这里参考:github:简单实现上述流程:
入门级实现:
: 部分源码实现.
: 源码实现

性能参数测试:

参考资料和推荐阅读

  1. 数据字典.

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java中,可以使用Map接口及其实现类来实现数据字典。Map是一种键值对的集合,可以根据键来查找对应的值。常用的Map实现类有HashMap、TreeMap和LinkedHashMap。 1. HashMap:HashMap是基于哈希表实现的,它提供了快速的插入、删除和查找操作。HashMap不保证元素的顺序,即不保证元素的存储顺序和插入顺序一致。 2. TreeMap:TreeMap是基于红黑树实现的,它可以对键进行排序。TreeMap按照键的自然顺序或者自定义的比较器进行排序,并且保持元素的有序状态。 3. LinkedHashMap:LinkedHashMap是HashMap的一个子类,它保持了元素的插入顺序。LinkedHashMap通过双向链表来维护元素的插入顺序,同时使用哈希表来提供快速的查找操作。 使用这些Map实现类,可以方便地实现数据字典功能。例如,可以将键值对存储到Map中,然后通过键来获取对应的值。下面是一个简单的示例代码: ```java import java.util.HashMap; import java.util.Map; public class Dictionary { public static void main(String[] args) { // 创建一个HashMap作为数据字典 Map<String, String> dictionary = new HashMap<>(); // 添加键值对 dictionary.put("apple", "苹果"); dictionary.put("banana", "香蕉"); dictionary.put("orange", "橙子"); // 根据键获取值 String value = dictionary.get("apple"); System.out.println("apple的中文名是:" + value); // 遍历字典 for (Map.Entry<String, String> entry : dictionary.entrySet()) { System.out.println(entry.getKey() + ":" + entry.getValue()); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执于代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值