Java如何从数据库里读取一个树形表然后封装成list?

public class GroupTreeVo {
private Long id;
private String text;
private Long pid;
private List<GroupTreeVo> children;
}
这是vo类
前三个成员变量对应数据库的同名字段

这个树形结构的表的子节点数量无限制 现在的需求就是把每一个节点的子节点封装进children属性里 然后子节点的孙子节点继续封装进子节点的children里 直到没有子节点了

怎么整?

首先查询的时候最好按照id的大小排序,应该是越小的是父节点,越大的是子节点,升序
才好用下面的方法
Map <Long , GroupTreeVo> temp=new HashMap<Long,GroupTreeVo>();
读取数据库数据
循环拿出,每次一条记录,相当于一个GroupTreeVo对象
每次都new 一个GroupTreeVo,数据库赋值,并存储到temp中以ID为key,对象为Value
判断是否有pid,如果有从temp中拿出父节点,设置它的children.add,
循环结束,最后,拿到temp的第一个,应该就是父节点,里面包含N多children追问

亲一口

温馨提示:答案为网友推荐,仅供参考
相似回答