日期:2014-05-16  浏览次数:20362 次

oracle树操作,异步查询,子节点过多分批查询

?oracle树操作链接

?

?

?

select m.* from (

? ? ? ?select a.*, level leaf ?,connect_by_isleaf isleaf,sys_connect_by_path ?fullpath (title, '/')

? ? ? ? from tb_menu ?a

? ? ? ? start with parent is null

? ? ? ? connect by parent = prior id ORDER SIBLINGS BY ?to_number(a.id)

? ?) M

?

where M.parent == (clicked tree id)

?

?

leaf :树结构中第几级

isleaf ?0/1 ?是否为顶节点或子节点(判断含有子节点的各省)

fullpath ?/title1/title1-1/title1-1-1 按照从上到下依次把title用 “/” 连接起来 作为一列

?

?

树节点防止子节点数太多,一次性添加到节点太慢,就分层异步展开,即点哪个结点就查只它(clicked tree id)的子节点!

这样就OK了。

如果它的子节点还是太多,超过大约300个子节点以上,就先查前0-100 个节点,然后添加在代码中添加一个节点(加载更多(100/300) )在最后, 并让他响应click事件,当点击这个代码中添加的节点的时候就加载余下的101-200,直到300个节点全部加载完。

?