介绍
利用递归算法怎么将数据库解析成Java树形结构?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
,表结构:
TB_TREE创建表 ( CID编号不是零, CNAME VARCHAR2 (50), PID数字//父节点 )
b表数据:
插入tb_tree (CID, CNAME, PID)值(1 & # 39;中国& # 39;,0); 插入tb_tree (CID, CNAME, PID)值(2 & # 39;北京市& # 39;,1); 插入tb_tree (CID, CNAME, PID)值(3 & # 39;广东省& # 39;,1); 插入tb_tree (CID, CNAME, PID)值(4日& # 39;上海市& # 39;,1); 插入tb_tree (CID, CNAME, PID)值(5 & # 39;广州市& # 39;(3); 插入tb_tree (CID, CNAME, PID)值(6 & # 39;深圳市& # 39;(3); 插入tb_tree (CID, CNAME, PID)值(7 & # 39;海珠区& # 39;(5); 插入tb_tree (CID, CNAME, PID)值(8 & # 39;天河区& # 39;(5); 插入tb_tree (CID, CNAME, PID)值(9日& # 39;福田区& # 39;(6); 插入tb_tree (CID, CNAME, PID)值(10日& # 39;南山区& # 39;(6); 插入tb_tree (CID, CNAME, PID)值(11日& # 39;密云县& # 39;(2); 插入tb_tree (CID, CNAME, PID)值(12日& # 39;浦东& # 39;(4),
公共类TreeNodeTest { @Test 公共空间loadTree()抛出异常{ System.out.println (JsonUtils.javaToJson (recursiveTree (1))); }/* * *递归算法解析成树形结构 * * @param cid * @return * @author jiqinlin */公共TreeNode recursiveTree (int cid) {//根据cid获取节点对象(SELECT *从tb_tree t t.cid=, # 63;) TreeNode节点=personService.getreeNode (cid);//查询cid下的所有子节点(从tb_tree t t.pid=选择*,# 63;) 列表childTreeNodes=personService.queryTreeNode (cid);//遍历子节点 (TreeNode孩子:childTreeNodes) { TreeNode n=recursiveTree (child.getCid ());//递归 node.getNodes阀门()(n); } 返回节点; } }
输出的json格式如下:
{ “cid": 1、 “nodes":( { “cid": 2 “nodes":( { “cid": 11, “nodes":( ), “cname":“密云县“, “pid": 2 } ), “cname":“北京市“, “pid": 1 }, { “cid": 3, “nodes":( { “cid": 5 “nodes":( { “cid": 7, “nodes":( ), “cname":“海珠区“, “pid": 5 }, { “cid": 8 “nodes":( ), “cname":“天河区“, “pid": 5 } ), “cname":“广州市“, “pid": 3 }, { “cid": 6, “nodes":( { “cid": 9, “nodes":( ), “cname":“福田区“, “pid": 6 }, { “cid": 10, “nodes":( ), “cname":“南山区“, “pid": 6 } ), “cname":“深圳市“, “pid": 3 } ), “cname":“广东省“, “pid": 1 }, { “cid": 4 “nodes":( { “cid": 12, “nodes":( ), “cname":“浦东“, “pid": 4 } ), “cname":“上海市“, “pid": 1 } ), “cname":“中国“, “pid": 0 }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。