如果你是用Oracle的话,可以试试用星型检索法来将表中的数据转换成树形结构数据。以下是个应用的例子。详细请查看Oracle的操作手册SQL篇。--建立一个测试用的表,表中不需要level属性。
--Oracle提供一个叫做level的虚拟列。
create table test (
id number(3),
fatherid number(3),
name varchar2(20)
);--准备一些数据
insert into test values (1, null, 'user 1');
insert into test values (2, 1, 'user 2');
insert into test values (3, 1, 'user 3');
insert into test values (4, 3, 'user 4');
insert into test values (5, 3, 'user 5');--其树形结构如下:
1
/ \
2 3
/ \
4 5--执行一个星型检索
select id, name, level from test
start with fatherid is null
connect by prior id = fatherid;--执行结果
ID NAME LEVEL
---------- -------------------- ----------
1 user 1 1
2 user 2 2
3 user 3 2
4 user 4 3
5 user 5 3
--Oracle提供一个叫做level的虚拟列。
create table test (
id number(3),
fatherid number(3),
name varchar2(20)
);--准备一些数据
insert into test values (1, null, 'user 1');
insert into test values (2, 1, 'user 2');
insert into test values (3, 1, 'user 3');
insert into test values (4, 3, 'user 4');
insert into test values (5, 3, 'user 5');--其树形结构如下:
1
/ \
2 3
/ \
4 5--执行一个星型检索
select id, name, level from test
start with fatherid is null
connect by prior id = fatherid;--执行结果
ID NAME LEVEL
---------- -------------------- ----------
1 user 1 1
2 user 2 2
3 user 3 2
4 user 4 3
5 user 5 3
//select * from dbname where fatherID = null;
...
while (rs.next()){
father = id;
DefaultMutableTreeNode fatherNode = new DefaultMutableTreeNode(father);
root.add(fatherNode);
getChildren(fatherNode,father);
}
}
void getChildren(DefaultMutableTreeNode fatherNode,int father){
//select * from dbname where fatherID = father;
...
while (rs.next()){
father = id;
Node = new DefaultMutableTreeNode(father);
fatherNode.add(Node);
getChildren(Node,father);
}
}
================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]