MyException - 我的异常网
当前位置:我的异常网» Java Web开发 » 高手来领分,hibernate递归遍历树及读取到list中的

高手来领分,hibernate递归遍历树及读取到list中的数据交互,该怎么处理(3)

www.MyException.Cn  网友分享于:2013-01-12  浏览:201次

------解决方案--------------------
LZ好象是在做无限级的生成树吧.
我是用JAVA来写的,只读取一次数据库,然后再递归生成树.记得每次用前把静态变量re1清空.
.用HIBERNATE 你照着推就OK了
public static List getAll() //得到顺序表
{
List result=new ArrayList();
DBConnection db=new DBConnection();
Connection conn=db.getConn();
try
{
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery( "select * from Class ");
while(rs.next())
{

Node n=new Node();
n.setId(rs.getInt( "ClassID "));
n.setName(rs.getString( "ClassName "));
n.setParentid(rs.getInt( "ParentID "));
n.setLevel(rs.getInt( "Leve "));
result.add(n);

}
return result;
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}

static List re1=new ArrayList();//用来返回结果的数组
// 递归生成树
public static List getTree(Node node,List treeList)
{
//rr.add(node);
//System.out.println(node.getName());
if(!node.isLeaf())
{
List ss=getSubing(node);
for(int i=0;i <ss.size();i++)
{

Node n=(Node)ss.get(i);
re1.add(n);
//System.out.println(n.getName()+ " "+n.getParentid()+ " "+n.getId()+ " "+n.getLevel());
getTree(n,treeList);

}
}
else
{
re1.add(node);
//System.out.println(node.getName()+ " "+node.getParentid()+ " "+node.getId());

}
return re1;
}

------解决方案--------------------
发了,来领分

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有