java代码实现三级业务装配

本文介绍了如何在Java中实现三级深度的业务装配,适用于处理树形结构且数据量大的数据表。作为初学者的学习记录,分享了实现过程,以备后续参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般出现树形结构的数据表(该表记录的一个字段指向该表其他记录的主键),且数据量庞大时需要使用业务装配,以前使用过二级深度树的业务装配,这次是三级深度,作为初学者,还多想了一会,记录下来,以防不时之需。

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);
				// 父指标不是一级指标,即该指标是三级指标
				if (khycjpd.getPzbdm() != null && !"".equals(khycjpd.getPzbdm())) {
					// 添加该指标到其父指标
					khycjpd.getZzbList().add(result.get(map.get("zbdm")));
					// 删除该指标
					result.remove(map.get("zbdm"));
				}
			}
		}
		// 将所有二级子指标放入对应的一级父指标
		for (Map<String, String> map : queryData) {
			temp = map.get("pzbdm");
			// 如果不是一级指标
			if (!(temp == null || "".equals(temp))) {
				// 获取父指标
				Khycjpd khycjpd = result.get(temp);
				// 父指标是一级指标
				if (khycjpd != null && (khycjpd.getPzbdm() == null || "".equals(khycjpd.getPzbdm()))) {
					// 添加该指标到其父指标
					khycjpd.getZzbList().add(result.get(map.get("zbdm")));
					// 删除该指标
					result.remove(map.get("zbdm"));
				}
			}
		}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值