package lich.sdsy.domain;import java.util.ArrayList;
import java.util.List;public class Department {
private int id;
private String dept_name;
private List<Department> deptList=new ArrayList<Department>();
private int parent_id;
}
package lich.sdsy.test;
import java.util.ArrayList;
import java.util.List;
import lich.sdsy.dao.DepartmentDao;
import lich.sdsy.dao.impl.DepartmentDaoImpl;
import lich.sdsy.domain.Department;public class TestGrading {
int i=0;
public static void main(String[] args) {
TestGrading tg=new TestGrading();
tg.PrintDept(tg.FindChildren());

}
public List<Department> FindChildren(){
DepartmentDao deptDao=new DepartmentDaoImpl();
List<Department> dept_all=new ArrayList<Department>();
List<Department> dept_root=new ArrayList<Department>();
try {
dept_all=deptDao.findAllDepts();
System.out.println("dpet_all:"+dept_all);
dept_root=FindChildByParentId(dept_all,1);

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return dept_root;
}
public List<Department> FindChildByParentId(List<Department> list,int parent_id){
System.out.println("parent_id:"+parent_id);//0
List<Department> dept_children=new ArrayList<Department>();
System.out.println("new dept_children.size:"+dept_children.size());
for(Department dept:list){
System.out.println("dept.id:"+dept.getId()+",dept.parentid:"+dept.getParent_id()+",parentid"+parent_id);
if(dept.getParent_id()==parent_id){
System.out.println(i++);
System.out.println("dept.getid"+dept.getId()+",parentid"+parent_id);
dept_children.add(dept);
System.out.println("dept_chidleren.size:"+dept_children.size());
}
}
System.out.println("dept_children.size():"+dept_children.size());
if(dept_children.size()>0){
for(Department dept:dept_children){
FindChildByParentId(list, dept.getId());
}
}
return dept_children;
}
public void PrintDept(List<Department> list){
for(Department dept:list){
System.out.println("print.dept.name:"+dept.getDept_name());
System.out.println("prinat.dept.id:"+dept.getId());
List<Department> depts=dept.getDeptList();
System.out.println("print.depts.deptlist.size:"+depts.size());
// if(depts.size()>0){
// PrintDept(depts);
// }
}
}
}sql结构:id  deptname  parent_id;
1,a,0
2,b,1
3,c,1
4,d,1
5,e,2
6,f,2
7,g,3
8,h,4
9,i,4