java后台拼树数据

我遇到的,有两种情况:

1、根节点在一个表中,所有子节点在另外一个表中(之间通过根节点的id关联)

2、根节点和子节点在同一个表中,根节点的PARENT_ID为空。

这两种情况,都可以通过sql将数据整理一下。

思路:

1、先将树的数据查询出来(如果不再同一张表中,用union all 将根节点和子节点合并,并将根节点的PARENT_ID设置为0(总之,不为空就行))

2、将这些数据放入一个Map<String,List<Map<String,Object>>中,该Map的key就是PARENT_ID,后面的list就是相同的PARENT_ID的,放入到该list中

[{'0'},[{'id':'001','text':'根节点01'},{'id':'002','text':'根节点02'}]]

3、拼根节点

遍历第2步的Map,找到PARENT_ID为0的,判断有没有子节点,有的话,用递归将子节点拼出来,没有的话,加上leaf:true

4、拼子节点(递归)

和拼根节点类似

你可能感兴趣的:(java后台拼树数据)