数据库表结构:
 ID        父层节点ID
------------
PD_10  PD_8:PD_9
PD_11  PD_8:PD_9
PD_12  L_06
PD_13  PD_9:PD_10
PD_15  PD_10
PD_16  PD_12:PD_15
PD_17  PD_16
PD_7  L_03
PD_8  L_08
PD_9  PD_7:PD_8 
------------
要求实现功能,读取某一节点所在的层次。
  比如说PD_10的父节点是PD_8和PD_9,PD_9的父节点是PD_7,
        PD_7的父节点是L_03,所以PD_10走PD_9的层次是3,
        同理走PD_8的层次是2,现要求取最大的层次,即为第3层!

解决方案 »

  1.   

    给个伪代码
    public int getLevel(child)
    {
       int level = 0;
       List children = new ArrayList();
       children.add(child);
       List parents = findParent(children);
       while(0 != parents.size())
       {
          parents = findParent(parent); 
          level ++;
       }
       return level;
    }/**
     *  找爸爸
     */
    pubilc List findParent(List children)
    {
        return
          "select p_id from table where id in(children)";
    }
      

  2.   

    至:hetty1006(hetty)    谢谢兄台的指点,问题搞锭了!