将数据库的数据循环进行封装
|
List measureDept = reportDao.searchMeasureDept(param);
// 存放合并后指标值的Map LinkedHashMap measureDeptMap = new LinkedHashMap();
// 行转列将从数据库查询出一个指标多个月份多条值的记录合并为一条记录 for (int i = 0; i < measureDept.size(); i++) { LinkedHashMap tempLinkedMap = (LinkedHashMap) measureDept.get(i);
String departmentcode = tempLinkedMap.get("DEPARTMENTCODE") .toString(); String measurecode = tempLinkedMap.get("MEASURECODE") .toString();
List dataList = null; LinkedHashMap tempMap = null; if (measureDeptMap.containsKey(departmentcode + measurecode)) { tempMap = (LinkedHashMap) measureDeptMap.get(departmentcode + measurecode); dataList = (List) tempMap.get("dataList"); LinkedHashMap dataMap = new LinkedHashMap(); dataMap.put("MEASUREVALUE", tempLinkedMap .get("MEASUREVALUE")); dataMap.put("WARNLIGHT", this.getLight(tempLinkedMap.get( "WARNLIGHT").toString())); dataList.add(dataMap); } else { tempMap = new LinkedHashMap(); tempMap.put("DEPARTMENTNAME", tempLinkedMap .get("DEPARTMENTNAME")); tempMap .put("MEASURENAME", tempLinkedMap .get("MEASURENAME"));
// 12.09 增加 departmentcode 用于更换下面的key tempMap.put("DEPARTMENTCODE", departmentcode);
dataList = new ArrayList(); LinkedHashMap dataMap = new LinkedHashMap(); dataMap.put("MEASUREVALUE", tempLinkedMap .get("MEASUREVALUE")); dataMap.put("WARNLIGHT", this.getLight(tempLinkedMap.get( "WARNLIGHT").toString())); dataList.add(dataMap);
tempMap.put("dataList", dataList);
} tempMap.put("DATALISTSIZE", dataList.size()); tempMap.put("MONTHLISTSIZE", monthList.size()); measureDeptMap.put(departmentcode + measurecode, tempMap); }
封装数据格式: measureDeptMap { departmentcode + measurecode = tempMap { DEPARTMENTNAME标识= 数据库中查询的DEPARTMENTNAME, MEASURENAME标识 = 数据库中查询的MEASURENAME dataList标识 =dataList[ dataMap{ MEASUREVALUE标识= 数据库中查询的MEASUREVALUE, //转换数据 WARNLIGHT标识= this.getLight(数据库中查询的WARNLIGHT)
} ] }
} |
本文介绍了一种将数据库查询结果进行封装和转换的方法,通过循环遍历查询结果,并使用Map来存储转换后的数据,实现从行到列的数据转换,便于后续处理。

被折叠的 条评论
为什么被折叠?



