一般出现树形结构的数据表(该表记录的一个字段指向该表其他记录的主键),且数据量庞大时需要使用业务装配,以前使用过二级深度树的业务装配,这次是三级深度,作为初学者,还多想了一会,记录下来,以防不时之需。
List<Map<String, String>> queryData = dao.execSqlQuery();
// 定义结果数据列表
Map<String, Khycjpd> result = new HashMap<>();
// 循环将所有指标放入列表
for (Map<String, String> map : queryData) {
result.put(map.get("zbdm"), new Khycjpd(map.get("zbdm"), map.get("pzbdm"), kcptdm, map.get("zbnr"),
map.get("zbbl"), map.get("cjr"), map.get("cjsj"), map.get("xgr"), map.get("xgsj")));
}
String temp = "";
// 将所有三级子指标放入对应的二级父指标
for (Map<String, String> map : queryData) {
temp = map.get("pzbdm");
// 如果不是一级指标
if (!(temp == null || "".equals(temp))) {
// 获取父指标
Khycjpd khycjpd = result.get(temp);
// 父指标不是一级指标,即该指标是三级指