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

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

首先查询的时候最好按照id的大小排序,应该是越小的是父节点,越大的是子节点,升序

才好用下面的方法

Map <Long , GroupTreeVo> temp=new HashMap<Long,GroupTreeVo>();

读取数据库数据

循环拿出,每次一条记录,相当于一个GroupTreeVo对象

每次都new 一个GroupTreeVo,数据库赋值,并存储到temp中以ID为key,对象为Value

判断是否有pid,如果有从temp中拿出父节点,设置它的childrenadd,

循环结束,最后,拿到temp的第一个,应该就是父节点,里面包含N多children

以前用dtree写过一个,先把你数据库数据查出来,重点是确定父id跟子id都已经分好了,然后剩下的主要是在jsp里写树菜单就好了:给你参考下,下面那两个文件你可能没有,不过应该可以在网上下载的

<div class="dtree">

<p><a href="javascript: dopenAll();">展开</a> | <a href="javascript: dcloseAll();">关闭</a></p>

<script type="text/javascript">

d = new dTree('d',"${contextPath}/js/dtree/");

dadd(0,-1,'涉及问题选择');

<c:forEach items="${problemList}" var="pro">

var fid;

var config="${procontent}";

fid = '${profid}';

var id = '${proid}';

if(${proson}==0){

ss='+config,'${procontent}','frame_right');

dadd('${proid}',fid,config,'${contextPath}/ajdj/ajdj_sjwtLjdoconfigid='+id,'${procontent}','frame_right');

}else{

dadd('${proid}',fid,config,'','${procontent}','frame_right');

}

</c:forEach>

documentwrite(d);

</script>

</div>

定义一个TreeNode类里面有

id 自身id

parentId 父节点id

name 树显示文本

url 链接地址

open 是否展开树

等属性

将从数据库查出来的数据一个个set到TreeNode里面封装成一个List<TreeNode>

再将这个List转换成你的树所需要的格式内容比如json格式

你使用根节点一般根节点都是接口,怎么可能实例化,一般在设计的时候这种情况是被考虑的,所以很多时候我们学习一个技术就是学习他的 接口,然后实例化他给的 各种 类

包括以后我们工作做项目,设计的时候也是 基于 三层数据结构的, 底层DAO层就是接口

以上就是关于Java如何从数据库里读取一个树形表然后封装成list全部的内容,包括:Java如何从数据库里读取一个树形表然后封装成list、java从数据库中查询数据,存储为树形结构,怎么做、java树形结构如何从数据库读取数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9490756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存