数据字典的好处很多比如:
1、可以减少使用表,来专门记录类型。
2、类型使用key检索,或者报表统计分析,在一定程度上相比汉字来讲,效率好得多。
3、使用缓存的数据字典、也可以减少不少的io操作。
等等、、、、
首先,库表设计就智者见智了、不多说、爱怎么设计就怎么设计。
完整的数据字典设计 ,需要
1、生成select 自定义标签。
2、list页面,或者get页面, 一个key转 value的标签
使用自定义标签,搭配上缓存的数据字典是最方便、最完美的解决办法,
接下来,就直接贴代码了。
一、数据字典缓存配置:
1、数据字典缓存监听器(在web容器启动成功的时候、进行缓存)
web.xml
1
2 初始化数据字典
3 com.hotent.core.web.listener.DictionaryCacheListener
4
2、DictionaryCacheListener
1 packagecom.*****.core.web.listener;2 importjavax.servlet.ServletContextEvent;
4 importorg.springframework.web.context.WebApplicationContext;5 importorg.springframework.web.context.support.WebApplicationContextUtils;
7 importcom.*****.platform.service.system.DictionaryService;8
9 public class DictionaryCacheListener implementsjavax.servlet.ServletContextListener {10
11 @Override12 public voidcontextDestroyed(ServletContextEvent arg0) {
14 }
16 @Override17 public voidcontextInitialized(ServletContextEvent arg0) {18
19 System.out.println("++++++++++++++++++ 数据字典已缓存 +++++++++++++++++++++");20 WebApplicationContext webApplicationContext =WebApplicationContextUtils.getWebApplicationContext(arg0.getServletContext());21 DictionaryService dc = (DictionaryService) webApplicationContext.getBean("dictionaryService");22 dc.getCacheDic(); // 调用数据字典Manager的一个方法来缓存
24 }25
26 }
3、保存缓存数据字典的BO //(也可以放在平台缓存的BO里面,那共用的缓存设计要考虑线程安全了,简单起见这么搞。)
importjava.util.HashMap;importjava.util.List;importjava.util.Map;importcom.hotent.platform.model.system.Dictionary;importcom.hotent.platform.model.system.GlobalType;/*** 缓存数据字典
*@authormiao
**/
public classCacheDict {/*** 所有的数据字典类型*/
public static Map allTypes = new HashMap();/*** 所有类型,