1.数据字典表

1 CREATE TABLE `dic` (
2   `id` int(32) NOT NULL AUTO_INCREMENT,
3   `table_name` varchar(225) DEFAULT NULL,
4   `field_name` varchar(225) DEFAULT NULL,
5   `field_value` varchar(225) DEFAULT NULL,
6   `field_describe` varchar(225) DEFAULT NULL,
7   `describe` varchar(225) DEFAULT NULL,
8   PRIMARY KEY (`id`)
9 ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

2. DicMap.java类

 1 package com.day02.sation.map;
 2
 3 import com.day02.sation.dao.IDicDao;
 4 import com.day02.sation.model.Dic;
 5 import org.springframework.context.ApplicationContext;
 6 import org.springframework.context.support.ClassPathXmlApplicationContext;
 7
 8 import java.util.HashMap;
 9 import java.util.List;
10 import java.util.Map;
11
12 /**
13  * Created by Administrator on 1/3.
14  */
15
16 public class DicMap {
17
18     private static IDicDao dicDao;
19
20     private static Map<String, String> map = new HashMap();
21
22     static {
23         //获取应用上下文对象
24         ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml");
25         //获取dicDao实例
26         dicDao = ctx.getBean(IDicDao.class);
27         //调用方法初始化字典
28         addMapValue();
29     }
30
31     public static String getFieldDetail(String tableName, String fieldName, String filedValue) {
32         String key = tableName + "_" + fieldName + "_" + filedValue;
33         String value = map.get(key);
34         if (value == null) { //如果 value 为空 重新查询数据库
35             Dic dicQuery = new Dic();
36             Dic dic = dicDao.getDic(dicQuery);
37             if (dic != null) {//数据有该值
38                 String fieldDescribe = dic.getFieldDescribe();
39                 map.put(key, fieldDescribe);
40                 return fieldDescribe;
41             }
42             value = "暂无";
43         }
44         return value;
45     }
46
47     /**
48      * 初始化字典数据
49      */
50     private static void addMapValue() {
51         List<Dic> list = dicDao.getList();
52         for (int i = 0; i < list.size(); i++) {
53             Dic dic = list.get(i);
54             String tableName = dic.getTableName();
55             String fieldName = dic.getFieldName();
56             String fieldValue = dic.getFieldValue();
57             String key = tableName + "_" + fieldName + "_" + fieldValue;
58             String fieldDescribe = dic.getFieldDescribe();
59             map.put(key, fieldDescribe);
60         }
61
62     }
63 }

3.dao接口

 1     /**
 2      * 获取字典列表
 3      * @return
 4      */
 5     List<Dic> getList();
 6
 7     /**
 8      * 根据 key 获取字典值
 9      * @param dic
10      * @return
11      */
12     Dic getDic(Dic dic);

4.mapper映射文件

 1  <!--查询字典列表-->
 2    <select id="getList" resultType="com.day02.sation.model.Dic">
 3        SELECT d.id, d.table_name tableName, d.field_name fieldName, d.field_value fieldValue,
 4        d.field_describe fieldDescribe, d.`describe` FROM dic AS d
 5    </select>
 6     <!--根据key获取字典值-->
 7     <select id="getDic" parameterType="com.day02.sation.model.Dic" resultType="com.day02.sation.model.Dic">
 8         SELECT d.id, d.table_name tableName, d.field_name fieldName, d.field_value fieldValue,
 9         d.field_describe fieldDescribe, d.`describe` FROM dic AS d
10         WHERE d.table_name=#{tableName} AND d.field_name=#{fieldName} AND  d.field_value=#{fieldValue}
11     </select>

5.在模型中使用

6.页面显示

7.浏览器中使用firbug查看返回数据

8.页面显示效果

到此字典使用完毕!

转载于:https://www.cnblogs.com/newAndHui/p/8184788.html

大型运输行业实战_day07_2_数据字典实现相关推荐

  1. 大型运输行业实战_day14_1_webserivce简单入门

    1.简单使用 1.1.服务端 1.编写接口 1 package com.day02.sation.ws; 2 3 /** 4 * Created by Administrator on 1/12. 5 ...

  2. 大型运输行业实战_day12_1_权限管理实现

    1.业务分析 权限说的是不同的用户对同一个系统有不同访问权限,其设计的本质是:给先给用户分配好URL,然后在访问的时候判断该用户是否有当前访问的URL. 2.实现 2.1数据库设计标准5表权限结构 2 ...

  3. 4大行业实战案例,深度解析数字化转型升级路径

    ​本篇文章为亿信华辰<4大行业实战案例,深度解析数字化转型升级路径>视频直播稿件. 大家晚上好,欢迎来到小亿直播间!今天主讲的内容是以4个行业的典型应用为背景,给大家讲讲数字化转型的项目是 ...

  4. 2022-2027年中国国际货物运输行业市场深度分析及投资战略规划报告

    [报告格式]电子版.纸介版 [出品单位]华经产业研究院 本报告由华经产业研究院出品,对中国国际货物运输行业的发展现状.竞争格局及市场供需形势进行了具体分析,并从行业的政策环境.经济环境.社会环境及技术 ...

  5. 2022-2027年中国大件运输行业发展前景及投资战略咨询报告

    [报告类型]产业研究 [报告格式]电子+纸介版 [出品单位]华经产业研究院 本报告由华经产业研究院重磅推出,对中国大件运输行业的发展现状.竞争格局及市场供需形势进行了具体分析,并从行业的政策环境.经济 ...

  6. 2022年度交通运输行业重点科技项目申报开始,重点关注这几个方向

    近日,交通运输部发布关于<组织开展2022年度交通运输行业重点科技项目清单申报工作>的通知,开展2022年行业重点项目申报工作.截止日期为2022年9月20日.接下来就带大家了解一下本次申 ...

  7. 视频教程-Java大型企业级项目实战:VOD展示系统-Java

    Java大型企业级项目实战:VOD展示系统 系统分析师,项目经理,特级讲师:11年项目经验,8年教学经验:在多个大型企业级项目中担任过重要角色. 肖海鹏 ¥479.00 立即订阅 扫码下载「CSDN程 ...

  8. 2020年中国沿海散装液体化学品运输行业市场现状分析,行业集中度逐步提升「图」

    一.货物水上运输分类 按照运输货物的性质不同,货物水上运输分为普通货物运输和危险货物运输.危险货物运输涵盖散装液体.散装固体和包装危险货物运输,其中,散装液体危险货物运输包括原油船运输.成品油船运输. ...

  9. 全球及中国管道运输行业建设发展与投资战略规划报告2022版

    全球及中国管道运输行业建设发展与投资战略规划报告2022版 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年11月 [搜索鸿晟 ...

  10. NVIDIA向交通运输行业开源其自动驾驶汽车深度神经网络

    NVIDIA今日宣布,在NVIDIA GPU Cloud (NGC)容器注册上,向交通运输行业开源NVIDIA DRIVE™自动驾驶汽车开发深度神经网络. NVIDIA DRIVE已成为自动驾驶汽车开 ...

最新文章

  1. 程序员的浪漫,你值得拥有!
  2. ubuntu21.04截图快捷键
  3. 通过Java代码装配bean
  4. 3520a mmz错误解决方法
  5. 使用hiredis实现redis分布式锁
  6. PostgreSQL版本通过pg_upgrade升级(9.6.21升级到13.2)
  7. 用python将word文档导入数据库_python读取word文档,插入mysql数据库实例
  8. 20190820 On Java8 第十章 接口
  9. web集群之haproxy相关配置
  10. C#应用中的LINQ 查询语言
  11. html5 canvas+js贪吃蛇网页小游戏代码
  12. android 使用ffmpeg 调用命令实现视频转gif(ffmpeg 学习三)
  13. windows7 android 驱动,Windows7安卓刷机驱动安装教程图文详解
  14. 非负矩阵分解 java_matlab练习程序(非负矩阵分解)
  15. 第九部分 项目沟通管理
  16. 【前端学习项目】web前端#001网页点名器(html+css+js实现用户交互)
  17. 树莓派 USB麦克风 录音
  18. 医美企业如何玩转私域流量?
  19. JavaScript从初级往高级走系列————prototype
  20. 软件测试工程师基础类面试题及参考答案

热门文章

  1. Spring MVC 中集成 Apache Shiro 安全框架
  2. 骑手的困境,资本的压榨
  3. AndroidDeveloper Weekly NO.4
  4. 为什么100offer坚持私密招聘?
  5. pytorch自带网络_一篇长文学懂 pytorch
  6. 2018辛苦一年了,程序员这样跟大boss谈2019加薪,谈薪杯具变喜剧
  7. mysql基础之视图、事务、索引、外键
  8. 'pip' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  9. AndroidStudio提高编译速度的建议
  10. 判断一个js对象是否是Array