您的位置:首页 > 编程语言 > Java开发

java项目中数据字典的实现

2016-09-26 21:08 302 查看
数据字典,给各个字典定义一些静态常量的名字,私有类型的本类的对象,还有一个Map用于存放字典表,在init ()中把所有字典加载入Map,定义的静态常量就是它的key.在需要的时候就根据getDic()获取相应的字典。
</pre><pre code_snippet_id="1901862" snippet_file_name="blog_20160926_3_3601668" name="code" class="java">
public class DicConstants {

/**行业代码*/定义静态类型的常量
public static final String dicTrdType = "dicTrdType";

/** 单体实例 */
private static DicConstants instance;

/** 字典数据映射表 */
@SuppressWarnings("rawtypes")
private Map<String, Map> dicMap = new HashMap<String, Map>();

/**
* 私有构造器
*/
private DicConstants() {
}

/**
* @return 返回 instance。
*/
public static DicConstants getInstance() {
if (instance == null) {
instance = new DicConstants();
}
return instance;
}

/**
* 初始化字典
*/
public void init() throws Exception {
@SuppressWarnings("unused")
DicDAO dicDAO = new DicDAO();

// TODO 在此调用dicDAO方法初始化字典

//行业代码
this.putDic(dicTrdType, dicDAO.getTrdTypeDic());

}

/**
* 根据字典编号得到字典内容映射表。
*
* @param dicId
*            字典编号
* @return 字典内容映射表
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map getDic(String dicId) {
if (dicMap.containsKey(dicId) == false) {
return new HashMap();
}
Map map = new LinkedHashMap();
map.putAll(dicMap.get(dicId));

return map;
}

/**
* 将加载的字典放入该工具类中。
*
* @param dicId
*            字典编号
* @param dataMap
*            字典数据列表
*/
@SuppressWarnings("rawtypes")
private synchronized void putDic(String dicId, Map dataMap) {
if (dicMap.containsKey(dicId)) {
dicMap.remove(dicId);
}
dicMap.put(dicId, dataMap);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: