目标:把数据表的数据查询出来,并且通过JSON以一棵树的形式呈现
所用到的jar包:
对应的JAVA模型:
package com.lzj.www.model; import java.util.ArrayList; import java.util.List; public class Node { private Integer cid; private String name; private Integer pid; //用于存放它的子节点 private List<Node> node = new ArrayList<>(); //getter、setter方法 }
实现:
private Node getTree(Integer cid){
//dao: sql="select * from tree where cid = ?" :找到cid的对应节点 Node node = daoTest.getOwn(cid);
//dao: sql="select * from tree where pid = ?" :找到cid对应节点的子节点 //这里要防止空指针异常,因此在dao层创建一个List<Node>的时候就该指定地址
List<Node> cList = daoTest.getChild(cid); for(Node n : cList){
//用递归实现树 Node cNode = getTree(n.getCid()); node.getNode().add(cNode); } return node; } @Test public void testTree(){ JSONObject object = JSONObject.fromObject(getTree(1)); System.out.println(object.toString()); }
原文:http://www.cnblogs.com/D-Key/p/4027713.html