1:資料庫關係(mysql)
id (自增的id)
pid(父級目錄的id)
rolename(目錄名稱)10
一級目錄21
二級目錄32
**目錄43
四級目錄
2:程式持久層**
2-1:程式持久層介面
2-2:程式持久層介面對映xml/**
* 通過pid查詢單條資料
* @param pid 父級主鍵
* @return 例項物件
*/list
querybypid
(integer pid)
;
這裡的持久層是通過 父級的pid查詢出對應的所有目錄資訊,以乙個集合的形式返回"querybypid" resultmap=
"role"
>
select
id, pid, rolename
from digui.table_test
where pid = #
<
/select>
2:遞迴獲取所有的目錄(重點來了)
解釋:@override
public list
findallrole()
private list
out(int i)
}return list;
}
1:首先我在findallrole方法中先第一此呼叫out方法,因為我們傳入的引數是pid(父級id),一級目錄的pid我們預設是0(隨意),所以我們呼叫out方法時傳入的引數時0;
2:在out方法中我們首先先呼叫持久層介面,通過傳入的引數pid獲取所有的目錄,這個時候我們需要判斷集合的長度,如果長度為0,說明這個pid對應的子目錄是沒有的(這個點注意,這個集合可能是一級目錄集合,也可能是二三四級目錄)。反之我們遍歷,然後將遍歷的每乙個元素作為父級目錄查詢出子集然後set到實體中,看**,看不懂就細品
最後貼出我最後查出來的結果:
}
]}]}
]
多級查詢採用遞迴和迴圈的方式詳解
燚軒科技以20級為例,編寫的 和執行效果如下 1.php查詢每級人數。php 如下 aim prevtel tel n 0 array co array while n 10 return array co 2.php查詢每級的個人資訊 php 如下 aim prevtel 15639743913 ...
mssql多級查詢 CTE遞迴
最近做乙個製造業專案中涉及到打包問題,其模式為 乙個a b c 可以無限打包,a包含b,b包含c等。之間遇到了 1 打包後包裹數量需要更新,更新時必須對他的父級包號也進行更新,所以必須查詢出某個包號對應的所有父級包號 2 拆包 將包裹拆除,希望把a下面的包裹號也連同一起拆除,這樣必須查詢出某個包號對...
遞迴方法繫結多級動態目錄
在程式設計中很可能使用到多級動態目錄,如果使用一般的方法將多級目錄繫結到treeview就顯得非常侷促了,所以,最好的辦法就是使用遞迴,使用遞迴就完全不用去考慮目錄的層次有多深.其實很簡單.view code 1 protected void page load object sender,even...