递归插入组织数据,需先插入父级组织,后插入子级组织

	//因dao层插入组织方法必须为库中存在其父组织的才能插入,故导入的excel数据中需先插入父级组织,后插入子级组织
	public static void sortInsertOrg(Map<String,Organize> db,Map<String,Organize> sheet,Organize org){
		if(db.get(org.getParentId())!=null){	//判断父组织是否在数据库表中存在,若存在,则插入数据库
			System.out.println(org.getId() + ":的父组织:"+org.getParentId()+"存在,插入数据库 ~");
			db.put(org.getId(), org);
		}else if(sheet.get(org.getParentId())!=null){	//父组织不存在数据库中,判断导入的excel数据中是否有其父组织,有则递归判断该父组织的父组织
			sortInsertOrg(db,sheet,sheet.get(org.getParentId()));		//递归判断该父组织的父组织
			sortInsertOrg(db,sheet,org);		//递归判断完父组织后再次尝试插入当前组织
		}else{
			System.out.println(org.getId()+"not found ~");
		}
	}
	
	public static void main(String[] args) {
		Map<String,Organize> db = new HashMap<String, Organize>();
		Map<String,Organize> sheet = new HashMap<String, Organize>();
		Organize org1 = new Organize();
		org1.setId("002");
		org1.setParentId("001");
		
		Organize org4 = new Organize();
		org4.setId("003");
		org4.setParentId("002");
		
		Organize org2 = new Organize();
		org2.setId("004");
		org2.setParentId("003");
		
		Organize org3 = new Organize();
		org3.setId("005");
		org3.setParentId("004");
		
		db.put(org1.getId(),org1);
		sheet.put(org2.getId(),org2);
		sheet.put(org4.getId(),org4);
		
		sortInsertOrg(db,sheet,org3);
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Self-impr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值