请教如何用数据库保存树形结构的数据

请教如何用数据库保存树形结构的数据,第1张

8文件需要是二进制文件8定义数据库表结构为struct,里面可以任意定义你要的帐号密码余额。多个的话,定义成链表link8写两个函数用来读和写这个文件,序列化 *** 作文件。8写文件时把struct的内容逐次写入

不知道你的数据库是什么,如果是oracle的话,你用start with connect by试试。我不太确定能不能直接出来你要的效果。如果出不来,那么用start with connect by+union all+条件判断(分别写每一个level=1的情况)应该可以,不过如果level=1有很多个,那么就麻烦了。

还有一种办法是利用字符串排序。比如1-1-1-2,1-2-1-2,1-1-1-3,那么排完序之后应该是1-1-1-2,1-1-1-3,1-2-1-2至于这个参数的出来方法就要去凑了。因为我担心还有例如1-1-1-2-1这样的,如果存在这样的,那么按照你的要求排序应该是

1-1-1-2,1-1-1-2-1,1-1-1-3,1-2-1-2,可是如果按照数字排序那么1-1-1-2-1肯定在最后,所以用字符排序可能才能达到你的要求。(还是用start with connect by)

比如这里最后的编码为

Level层数 父件代号 子件代号 子件顺序 编码

1 root C 1 1-1

1 root D 2 2-1

1 root F 3 3-1

2 C A 1 1-1-2-1

2 C B 2 1-1-2-2

2 D E 1 2-1-2-1

我这里没有环境,没办法测试,所有的内容均为猜想,仅供参考。

树状

树状图 dendrogram 亦称树枝状图。为了用图表示亲缘关系,把分类单位摆在图上树枝顶部,根据分枝可以表示其相互关系,具有二次元和三次元。在数量分类学上用于表型分类的树状图,称为表型树状图(phenogram),掺入系统的推论的称为系统树状图(cladogram)以资区别。表型树状图是根据群析描绘的,系统树状图是根据一种模拟的假定的性状进化方向即用电子计算机描绘的。

如果树的层数固定就可以用语句查询,但效率比较低。例如你说的三层:

select id,v2name+name from t1 inner join

(select id,v1name+name as name from t1 inner join

(select id,name from t1 where parentid = 0) v1 on t1parentid = v1id) v2 on t1parentid = v2id

jsp从mysql数据库读取数据,并填充到树形结构菜单并展现出来的实现方法:

1、引入jquerytreeviewjs树控件

<script type="text/javascript" src="jquery/easyui/jqueryminjs"></script>

<script type="text/javascript" src="jquery/easyui/jqueryeasyuiminjs"></script>

2、jsp页面中获取后台mysql数据,并传到jsp页面来

<%

// 数据库的名字

String dbName = "zap";

// 登录数据库的用户名

String username = "sa";

// 登录数据库的密码

String password = "123";

// 数据库的IP地址,本机可以用 localhost 或者 127001

String host = "127001";

// 数据库的端口,一般不会修改,默认为1433

int port = 1433;

String connectionUrl = "jdbc:sqlserver://" + host + ":" + port + ";databaseName=" + dbName + ";user=" + username

+ ";password=" + password;

//

//声明需要使用的资源

// 数据库连接,记得用完了一定要关闭

Connection con = null;

// Statement 记得用完了一定要关闭

Statement stmt = null;

// 结果集,记得用完了一定要关闭

with A as(select id,CAST(名字 as varchar(200)) 名字, 父亲名字 from 表名 where 父亲名字=0

union all

select Bid,cast(A名字+'\'+B名字 as varchar(200)),B父亲名字

from A join 表名 B on Aid=B父亲名字)

select 

from A

order by 2

将上述语句中的两个“表名”改为你自己的表名即可

以上就是关于请教如何用数据库保存树形结构的数据全部的内容,包括:请教如何用数据库保存树形结构的数据、数据库树形结构数据的查询结果排序问题、什么是树状图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10198126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存