sqlserver查詢樹形結構的所有子節點
創新互聯是一家集網站建設,雷山企業網站建設,雷山品牌網站建設,網站定制,雷山網站建設報價,網絡營銷,網絡優化,雷山網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
用標準sql的with實現遞歸查詢(sql2005以上肯定支持,sql2000不清楚是否支持):
with subqry(id,name,pid) as (
select id,name,pid from test1 where id = 5
union all
select test1.id,test1.name,test1.pid from test1,subqry
where test1.pid = subqry.id
)
select * from subqry;
jsp從mysql數據庫讀取數據,并填充到樹形結構菜單并展現出來的實現方法:
1、引入jquery.treeview.js樹控件
script type="text/javascript" src="jquery/easyui/jquery.min.js"/script
script type="text/javascript" src="jquery/easyui/jquery.easyui.min.js"/script
2、jsp頁面中獲取后臺mysql數據,并傳到jsp頁面來
%?
// 數據庫的名字
String dbName = "zap";
// 登錄數據庫的用戶名
String username = "sa";
// 登錄數據庫的密碼
String password = "123";
// 數據庫的IP地址,本機可以用 localhost 或者 127.0.0.1
String host = "127.0.0.1";
// 數據庫的端口,一般不會修改,默認為1433
int port = 1433;
String connectionUrl = "jdbc:sqlserver://" + host + ":" + port + ";databaseName=" + dbName + ";user=" + username
+ ";password=" + password;
//
//聲明需要使用的資源?
// 數據庫連接,記得用完了一定要關閉
Connection con = null;
// Statement 記得用完了一定要關閉
Statement stmt = null;
// 結果集,記得用完了一定要關閉
ResultSet rs = null;
try {
// 注冊驅動?
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 獲得一個數據庫連接
con = DriverManager.getConnection(connectionUrl);
String SQL = "SELECT * from note";
// 創建查詢
stmt = con.createStatement();
// 執行查詢,拿到結果集
rs = stmt.executeQuery(SQL);
while (rs.next()) {
%
tr
3、填充樹形菜單:
{
id ? ? ? ? ?: "string" // will be autogenerated if omitted
text ? ? ? ?: "string" // node text
icon ? ? ? ?: "string" // string for custom
state ? ? ? : {
opened ? ?: boolean ?// is the node open
disabled ?: boolean ?// is the node disabled
selected ?: boolean ?// is the node selected
},
children ? ?: [] ?// array of strings or objects
li_attr ? ? : {} ?// attributes for the generated LI node
a_attr ? ? ?: {} ?// attributes for the generated A node
}
$('#tree').jstree({
'core' : {
? ?'data' : function (obj, cb) {
? ? ? ?cb.call(this,
? ? ? ? ?['Root 1', 'Root 2']);
? ?}
}});
使用sqlserver遞推查詢,可以直接查詢出來。
參考資料:
WITH lmenu(nav_id,nav_name,nav_parentid,level) as
(
SELECT nav_id,nav_name,nav_parentid,0 level FROM nav nav_parentid=0
UNION ALL
SELECT A.nav_id, A.nav_name,a.nav_parentid, b.level+1 FROM gs_nav A,lmenu b where a.nav_parentid= b.nav_id and nav_id = 10
)
SELECT * from lmenu
具體SQL語句還需要自己驗證一下,上面的自己看著亂寫的。
網站標題:sqlserver樹形,sql查詢樹結構
文章出自:http://m.newbst.com/article42/dssieec.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、網站內鏈、服務器托管、品牌網站設計、外貿建站、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯