基本的思想和步骤都在了,主要就是递归
/**
* 传入级数返回存放该级数下所有组织列表的列表
* @param lever int 组织级数
* @return List<List> 存放组织列表
*/
public List<List> getTreeLeverNode(int lever) {
String sqlstr = "select ID from table1 where PARENT_ID=0";
Result ret = Dao.executeQuery(sqlstr);
List<List> list = new Vector<List>();
List rslist = new Vector();
List<String> nodeList = new Vector<String>();
for (int i = 0; i < ret.Length(); i++) {
rslist = getNextNode(Integer.parseInt(ret[i]
.toString()), lever - 1, nodeList);
list.add(rslist);
}
return list;
}
/**
* 返回存放该级数下所有组织的列表
* @param reqParentid 请求传入的父节点ID
* @param lever 组织级数
* @param list 存放该级数下所有组织的列表
* @return List<String> 存放组织
*/
public List<String> getNextNode(int reqParentid, int lever, List list) {
String sqlstr = "select ID from table1 where PARENT_ID="
+ reqParentid;
DBResult ret = super.executeQuery(sqlstr);
List rslist = new Vector();
lever = lever - 1;
if (lever > 0) {
for (int i = 0; i < ret.Length(); i++) {
rslist = getNextNode(Integer.parseInt(ret[i]
.toString()), lever , nodeList);
list.add(rslist);
}
} else {
for (int i = 0; i < ret.Length(); ; i++) {
list.add(ret[i].toString());
}
}
return list;
}