ResultSet rs = get result with SQL"select ID, parentID,name from table where parentID='0' order by ID"
while(rs.next()) {
   move data from rs to Vector.
}
for(has next Vector) {
    id = currentVector.ID;
    out.println(currentVector.name);
    getChildren(id);
}
------------------------
void getChildren(String parentId) {
ResultSet rs = get result with SQL"select ID, parentID,name from table where parentID='" + parentId + "' order by ID"
while(rs.next()) {
   move data from rs to Vector.
}
for(has next Vector) {
    id = currentVector.ID
    out.println(currentVector.name);
    getChildren(id);
}
}

解决方案 »

  1.   

    你一共查询了几回数据库?
    数据取出后如何进行封装?
    如果用两回查询数据库就可以解决你上述问题
    第一次取出所有parentID为0的数据
    第二次取出所有数据
    然后根据你的条件,进行循环递归
      

  2.   

    不用递归也是可以解的,但是涉及到较多的数据结构和算法,就不用拿来把楼主弄的更加头大了。忘了说明
    while(rs.next()) {
    move data from rs to Vector.
    }
    ++++这里要close ResultSet和PrepareStatement
    for(has next Vector) {
      

  3.   

    现在我准备把表结构改为:
    ID parentID    name
    1   01         第一
    2   02         第二
    3   01.01      一的孩子
    4   02.01      二的孩子
    5   01.01.01   一的孩子的孩子
    这样可能就不需要递归了吧