`
liwy2008
  • 浏览: 28431 次
  • 性别: Icon_minigender_2
  • 来自: 海口
社区版块
存档分类
最新评论

树型结构递归查询

阅读更多
查询当前节点的所有子字节:

@SuppressWarnings("unchecked")
public List<String> findAllChildColumnIdById(long id) throws Exception {

return em
.createNativeQuery(
"select to_char(i.id) FROM columns i start with i.id=:id connect by PRIOR i.id=i.f_parentId order by i.id asc")
.setParameter("id", id).getResultList();
}

当前节点找根节点
public String findRootIdByColumnId(long id) throws Exception {
return (String)em
.createNativeQuery(
"select to_char(i.id) FROM  columns  i where i.f_parentId=0  start with i.id=:id connect by PRIOR i.f_parentId=i.id ")
.setParameter("id", id).getSingleResult();
}

根据根节点找所有节点:

@SuppressWarnings("unchecked")
public List<InfoColumn> findAllChildColumnIdByRootId(long id) throws Exception {
List objects =em
.createNativeQuery(
"select i.id,i.f_name,i.f_parentId FROM columns i start with i.id=:id connect by PRIOR i.id=i.f_parentId order by i.id asc")
.setParameter("id", id).getResultList();
         if(objects!=null&&objects.size()>0){

List<InfoColumn> infocs = new ArrayList<InfoColumn>();
for (Object o : objects) {
InfoColumn i = new InfoColumn();
Object[] os = (Object[]) o;
i.setId(Long.parseLong(os[0].toString()));
i.setName(os[1] != null ? os[1].toString() : "");
i.setParentId(Long.parseLong(os[2].toString()));
infocs.add(i);
}
return infocs;
}else{

return null;
}
}

多表查询:
 
@SuppressWarnings("unchecked")
public List<Info> findInfoByColumnIds(List<String> ids, int pageindex,
int max) throws Exception {
       
String QL = "select distinct o.id,o.title,o.path,o.updateDate FROM Info o,InfoColumn i  where  o in elements(i.infos) ";

StringBuffer temp = new StringBuffer();
if (ids != null && ids.size() > 0) {
for (String id : ids) {
temp.append(",");
temp.append(id);
}
}

List objects= em.createQuery(QL + " and i.id in("
+ temp.substring(1).toString()
+ ") and (o.state=2 or o.state=3) order by o.updateDate desc").setFirstResult(
pageindex).setMaxResults(max).getResultList();
if(objects!=null&&objects.size()>0){

List<Info> infos = new ArrayList<Info>();
for (Object o : objects) {
Info i = new Info();
Object[] os = (Object[]) o;
i.setId(Long.parseLong(os[0].toString()));
i.setTitle(os[1] != null ? os[1].toString() : "");
i.setPath(os[2] != null ? os[2].toString() : "");
infos.add(i);

}

return infos;
}else{


return null;
}
}







分享到:
评论

相关推荐

    java递归树型结构通用数据库

    在Java递归树型结构通用数据库中,使用递归算法来实现部门信息的查询和删除操作,该算法可以递归查询部门信息,实现树型结构的部门管理。 7. 部门树型结构展示 在Java递归树型结构通用数据库中,提供了部门树型...

    mysql 递归查询 树型结构 代码逻辑

    ### MySQL 递归查询树型结构的代码逻辑详解 在处理具有层次结构的数据时,例如组织架构、分类信息等场景,经常会遇到需要构建树形结构数据的需求。这种情况下,使用MySQL进行递归查询是一种非常有效的手段。下面...

    教你如何用java开发树型结构

    3. **JSP和HTML渲染**:在JSP中展示树型结构通常涉及递归地渲染每个节点及其子节点。可以创建一个自定义JSP标签库或者使用JavaScript库(如jQuery Treeview)来实现。HTML元素如`&lt;ul&gt;`和`&lt;li&gt;`可以用来构建层级结构...

    递归法读取数据库树型结构示例

    总结起来,实现“递归法读取数据库树型结构”涉及数据库查询、递归算法、数据结构操作和用户界面控件的使用。通过这种方式,我们可以高效地处理和展示数据库中的层次数据,提供直观的用户体验。在实际项目中,可以...

    Oracle递归树形结构查询功能

    Oracle数据库在处理树形结构数据时提供了强大的递归查询功能,这种特性对于组织结构、产品分类、层级菜单等场景的应用非常广泛。递归树形结构查询主要依赖于`CONNECT BY`和`PRIOR`关键字,它们允许我们构建复杂的...

    jpa单表递归树形结构实现

    `NodeRepository`可以继承`JpaRepository, Long&gt;`,并添加自定义方法来处理递归查询,例如获取某个节点的所有子孙节点: ```java public interface NodeRepository extends JpaRepository, Long&gt; { List&lt;Node&gt; ...

    JS生成树型结构

    在JavaScript(JS)编程中,生成树型结构是一种常见的需求,尤其在数据可视化、文件系统模拟、目录结构展示以及组织复杂的数据关系时。本篇将深入探讨如何利用JavaScript实现这样的功能,结合简单、易用且美观的代码...

    JSP实现树型结构TREE

    在IT行业中,构建树型结构的数据展示是一种常见的需求,特别是在Web应用中,用户界面往往需要以层次化的形式展示数据。本例"JSP实现树型结构TREE"提供了一个使用JSP(JavaServer Pages)、EXTJS(一个前端JavaScript...

    树型数据结构中递归算法的实现.pdf

    在树型结构中,递归算法的应用广泛且重要,它通过函数自我调用的方式,处理树中节点相关的操作。 递归算法是一种在函数调用自身进行自我复制的过程,通过这种方式可以将大问题分解为小问题,直至解决。在树型数据...

    网页树型结构快速加载大数据量数据的实现

    利用树型结构进行数据组织, 层次清晰、操作方便、用途广泛。介绍了一种基于 VS.NET 技术设计实现的大数据量树型结 构数据的快速加载方法, 通过一种改进的基于广度优先的算法, 将树型数据按照一定的层次和需要, 分散...

    C#树型递归

    在IT领域,尤其是在编程中,树型数据结构和递归是两个重要的概念。"C#树型递归"指的是在C#编程语言中利用递归算法处理树状数据结构的问题。下面将详细介绍这两个主题。 首先,树是一种非线性的数据结构,由节点和边...

    sql server 2008 递归查询所有上级或下级数据

    在SQL Server 2008中实现递归查询来获取所有上级或下级数据是一项非常实用的技术,尤其是在处理具有层次结构的数据时。本篇将详细解释如何利用Common Table Expressions (CTE)来完成这样的查询,并对提供的示例代码...

    树型结构的存储文件 VB源码

    在IT领域,树型结构是一种常见的数据组织方式,它模拟了自然界中的树状关系,具有层级分明、易于查找和管理的特点。VB(Visual Basic)是微软公司开发的一种面向对象的编程语言,它提供了丰富的控件和函数库,使得...

    我的树型结构练习使用

    在IT领域,树型结构是一种重要的数据结构,它在计算机科学中扮演着核心角色,尤其在算法和数据存储方面。树形结构模拟了自然界中的层级关系,非常适合表示具有层次性的数据,例如文件系统、组织结构、网页链接等。在...

    tre.rar_java 树_java程序_树型结构

    在IT领域,树型结构是一种重要的数据结构,广泛应用于各种软件开发中,特别是在Java编程语言中。本资源“tre.rar”包含了一份关于Java实现树型结构的程序,以及相关的学习资料,适合对这一主题感兴趣或者正在开发...

    delphi 树型控件自动根据数据集生成树型结构

    本文将详细讲解如何在 Delphi7 中使用树型控件,并自动根据数据集生成树型结构。 首先,理解 TTreeView 控件的基本操作。TTreeView 提供了一个可视化的组件,用于展示具有父节点和子节点的关系的数据。每个节点表示...

    HTML+JS 树型结构

    在构建树型结构时,我们通常会使用`&lt;ul&gt;`(无序列表)和`&lt;li&gt;`(列表项)标签来创建基本的节点层次。例如,顶层节点可能是一个`&lt;ul&gt;`,每个子节点是`&lt;li&gt;`,而子节点下还可以嵌套`&lt;ul&gt;`来表示更深层次的结构。 ...

    树型结构的一个例子

    在IT领域,树型结构是一种常见的数据组织方式,它模拟了自然界中的树状关系,具有根节点、子节点和父节点的概念。在这个特定的Delphi示例程序中,"飘摇客"在2002年创建了一个用递归方法读取数据库数据并构建树形视图...

    javascript生成树型结构

    在JavaScript中生成树型结构是常见的数据展示方式,尤其在前端开发中,如文件系统、组织结构图或者导航菜单等场景。以下将详细介绍三种生成树型结构的方法。 ### 方法一:递归遍历 这是最基础也是最常见的方法,...

Global site tag (gtag.js) - Google Analytics