select t.*, t.SCOPE as sc from DICT_TREE t connect by prior t.DICT_TREE_ID=t.UP_DICT_ID start with t.UP_DICT_ID=82
以上查询语句返回的结果集正好是树形结构的,对生成树形菜单非常方便,不用再对数据进行整理排序,直接将结果集循环打印即可。
在查询时若想对某个节点下的子节点进行排序可在查询语句末尾加上如下代码
order sibling by t.ORDER_NUM
这样就能实现对子节点进行排序了。
以上方法构造树形菜单对于使用oracle数据库的应用来说非常的方便,但如果是使用mysql或其他数据库的话,就不行了。据我所知mysql好象没有类似于connect by prior这样的递归查询语句。前段时间做的一个使用mysql数据的项目在维护树形菜单是通过维护一个rankcode的字段实现结果集的树状排序的。以下是我的实现方法:
每级节点都使用两位数字来标识,子节点加上父节点的rankcode
一级节点的rankcode为两位数字:01~99
二级节点的rankcode为四位数字:0101~0199、0201~0299、0n~0n99
例如:
菜单名 rankcode值
一级菜单A 01
二级菜单a 0101
二级菜单b 0102
一级菜单B 02
二级菜单c 0201
二级菜单d 0202
一级菜单C 03
二级菜单d 0301
三级菜单1 030101
这样通过对rankcode进行排序,返回的结果集也是树形的。在菜单的管理中需要对rankcode进行维护。还有个弊端就是每级节点数量有限制,除非将每级节点的标识增加到3位数字。
我是使用了这么一个笨方法。。希望能在这抛砖引玉,引来更好的更方便的实现方法:)
分享到:
相关推荐
挺好的!结合了Ajax,jsp,oracle等,生成动态菜单,自己去看一看!
SpringBoot定时任务实现Oracle和mysql数据同步
Java与Oracle实现的树形菜单,直接解压,添加到eclipse 便可
递归查询菜单树,支持mysql,oracle,含表结构,递归查询菜单,支持mysql,oracle,含表结构递归查询菜单。
在ORACLE中用select * from all_users显示所有的用户,而在MYSQL中显示所有数据库的命令是show databases。对于我的理解,ORACLE项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和...
使用DBMover可以灵活定义Mysql和Oracle之间表和字段的对照关系,也可以在DBMover创建一个查询,把查询结果当作源表转入到Oracle中。 Dbmover for Mysql to Oracle 可以定时,定周期自动运行。 支持 Oracle 8i 以后...
在ORACLE、MSSQL、MYSQL中树结构表递归查询的实现.pdf
oracle菜单树查询 使用实例 使用START WITH CONNECT BY PRIOR子句实现递归查询
Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结
关于Oracle和MySQL.doc 关于Oracle和MySQL.doc 关于Oracle和MySQL.doc
Oracle to MySQL Oracle 转 MySQL亲自测试,好用
本猿最近做数据库迁移,修改了大量sql语句,对oracle和MySQL语法之间的一些不同之处总结了一些。
Convert Mysql to Oracle 最新版本:4.0 Convert Mysql to Oracle是一个免费的数据库转换工具,实现快速安全地将Mysql数据库导入为...在机器中安装了ORACLE客户端,使得Convert Mysql to Oracle能够成功连接到ORACLE
分别有:数据源配置、数据表结构转换、字段更新、数据迁移、根据oracle SQL的UPDATE DELETE 事物执行记录转为Mysql可执行SQL,同步执行到MySql数据库,此项目为个人兴趣爱好练手项目,项目问题欢迎留言,共同进步...
oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本
Oracle数据库转换成Mysql数据库,可将Oralce数据转换成Mysql数据。
oracle与mysql对比Oracle 和 mysql 的一些简单命令对比参照
从oracle中的BLOB类型字段中取出照片,转存到mysql数据库中。思路是现将oracle中的照片存储在本地文件夹,在将本地图片上传到mysql中。
本文档主要说明了mysql数据库中的数据如何转换成为oracle数据