大型运输行业实战_day07_2_数据字典实现
1.数据字典表
CREATE TABLE `dic` (
`id` int(32) NOT NULL AUTO_INCREMENT,
`table_name` varchar(225) DEFAULT NULL,
`field_name` varchar(225) DEFAULT NULL,
`field_value` varchar(225) DEFAULT NULL,
`field_describe` varchar(225) DEFAULT NULL,
`describe` varchar(225) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
2. DicMap.java类
package com.day02.sation.map; import com.day02.sation.dao.IDicDao;
import com.day02.sation.model.Dic;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by Administrator on 1/3.
*/ public class DicMap { private static IDicDao dicDao; private static Map<String, String> map = new HashMap(); static {
//获取应用上下文对象
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml");
//获取dicDao实例
dicDao = ctx.getBean(IDicDao.class);
//调用方法初始化字典
addMapValue();
} public static String getFieldDetail(String tableName, String fieldName, String filedValue) {
String key = tableName + "_" + fieldName + "_" + filedValue;
String value = map.get(key);
if (value == null) { //如果 value 为空 重新查询数据库
Dic dicQuery = new Dic();
Dic dic = dicDao.getDic(dicQuery);
if (dic != null) {//数据有该值
String fieldDescribe = dic.getFieldDescribe();
map.put(key, fieldDescribe);
return fieldDescribe;
}
value = "暂无";
}
return value;
} /**
* 初始化字典数据
*/
private static void addMapValue() {
List<Dic> list = dicDao.getList();
for (int i = 0; i < list.size(); i++) {
Dic dic = list.get(i);
String tableName = dic.getTableName();
String fieldName = dic.getFieldName();
String fieldValue = dic.getFieldValue();
String key = tableName + "_" + fieldName + "_" + fieldValue;
String fieldDescribe = dic.getFieldDescribe();
map.put(key, fieldDescribe);
} }
}
3.dao接口
/**
* 获取字典列表
* @return
*/
List<Dic> getList(); /**
* 根据 key 获取字典值
* @param dic
* @return
*/
Dic getDic(Dic dic);
4.mapper映射文件
<!--查询字典列表-->
<select id="getList" resultType="com.day02.sation.model.Dic">
SELECT d.id, d.table_name tableName, d.field_name fieldName, d.field_value fieldValue,
d.field_describe fieldDescribe, d.`describe` FROM dic AS d
</select>
<!--根据key获取字典值-->
<select id="getDic" parameterType="com.day02.sation.model.Dic" resultType="com.day02.sation.model.Dic">
SELECT d.id, d.table_name tableName, d.field_name fieldName, d.field_value fieldValue,
d.field_describe fieldDescribe, d.`describe` FROM dic AS d
WHERE d.table_name=#{tableName} AND d.field_name=#{fieldName} AND d.field_value=#{fieldValue}
</select>
5.在模型中使用

6.页面显示

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

8.页面显示效果

到此字典使用完毕!
大型运输行业实战_day07_2_数据字典实现的更多相关文章
- 大型运输行业实战_day11_2_事务理论与实际生产配置事务管理
1.什么是事务(Transaction:tx) 数据库的某些需要分步完成,看做是一个整体(独立的工作单元),不能分割,要么整体成功,要么整体生效.“一荣俱荣,一损俱损”,最能体现事务的思想.案例:银行 ...
- 大型运输行业实战_day08_1_memcache缓存生产应用
1.memcache使用环境搭建 1.安装memcached服务器 安装方法 以管理员身份打开cmd,在cmd中执行如下命令: 注意:在执行该命令时必须在memcached.exe文件下执行. 2.开 ...
- 大型运输行业实战_day15_1_全文检索之Lucene
1.引入 全文检索简介: 非结构化数据又一种叫法叫全文数据.从全文数据(文本)中进行检索就叫全文检索. 2.数据库搜索的弊端 案例 : select * from product whe ...
- 大型运输行业实战_day14_1_webserivce简单入门
1.简单使用 1.1.服务端 1.编写接口 package com.day02.sation.ws; /** * Created by Administrator on 1/12. */ public ...
- 大型运输行业实战_day13_1_定时任务spring-quartz
1.jar包 拷贝quartz-2.2.3.jar包到项目 2.编写定时任务类TicketQuart.java package com.day02.sation.task; import com.da ...
- 大型运输行业实战_day12_1_权限管理实现
1.业务分析 权限说的是不同的用户对同一个系统有不同访问权限,其设计的本质是:给先给用户分配好URL,然后在访问的时候判断该用户是否有当前访问的URL. 2.实现 2.1数据库设计标准5表权限结构 2 ...
- 大型运输行业实战_day11_1_aop理论与aop实际业务操作
1.aop概述 Spring的AOP:什么叫做AOP:Aspect oritention programming(面向切面编程)什么是切面:看图,业务方法 执行前后.AOP的目的:AOP能够将那些与业 ...
- 大型运输行业实战_day01_2_需求文档
1.文档格式 (见模板文件) 2.Axure简单使用 2.1安装Axure傻瓜式安装 2.2简单使用axure 3.总结 需求文件完成后应该包括三种文件: 1.axure文件 2.axure生成的ht ...
- 大型运输行业实战_day01_1_业务分析
1.业务分析 发展历史: 上车收费-->车站买票(相当于先收钱后上车)-->站务系统--->联网售票 2.项目结构 3.开发流程分析 1.业务分析 图文并茂 ...
随机推荐
- 小峰servlet/jsp(6)jstl核心标签库
一.引入jstl 需要jstl.jar;standard.jar; 二.jstl核心标签库: c:out 内容输出标签; c:set 用来设置4种属性范围值的标签: c:re ...
- Linux-mail设置
邮箱文件设置 #配置发邮件 /etc/mail.rc中追加 set bsdcompat set from=c4kaichen@163.com .com set smtp-auth-user=c4kai ...
- 原创)CentOS6.4下安装xampp(一定要在linux上下载)
一.xampp下载地址: http://sourceforge.net/projects/xampp/files/XAMPP%20Linux/1.8.3/ 二.我下载的是xampp-linux-x64 ...
- Maven 配置tomcat插件
使用tomcat插件来访问maven 1 先下载tomcat插件(在pom中配置) <!-- 配置Tomcat插件 --> <plugin> <groupId>or ...
- 【BZOJ】1923 [Sdoi2010]外星千足虫(高斯消元)
题目 传送门:QWQ 分析 高斯消元解异或方程组,和解普通方程组差不多. 范围有点大,要套一个bitset. 代码 #include <bits/stdc++.h> using names ...
- Design a high performance cache for multi-threaded environment
如何设计一个支持高并发的高性能缓存库 不 考虑并发情况下的缓存的设计大家应该都比较清楚,基本上就是用map/hashmap存储键值,然后用双向链表记录一个LRU来用于缓存的清理.这篇文章 应该是讲得很 ...
- CYQ.Data 数据框架 使用篇一 入门指南---001
原文链接:http://www.cyqdata.com/cyqdata/article-detail-411 本文针对V5版本进行修改于(2016-07-04) 下面是使用步骤: 一:下载框架DLL[ ...
- loganalyzer
- apache跨域图片配置
修改httpd.conf 1 找到 网站目录设置 <Directory "/var/www"> AllowOverride ALL # Allow open acces ...
- 浏览器。浏览器对象检测、Chrome调试工具
chrome浏览器的flash问题: 2017-12-26 chrome浏览器的flash有无法显示无法正常运行的问题时,解决方法如下: https://qzonestyle.gtimg.cn/qzo ...