数据库表结构:
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层!
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层!
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)";
}