`
li_sir
  • 浏览: 114807 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取节点下所有子节点

    博客分类:
  • java
阅读更多
在开发过程中,经常遇到多级数据,譬如部门等,如果想查一个节点下所有子节点,有两种办法可以实现。第一是sql,第二是通过程序代码进行递归。
第一种、通过sql实现。
oracle可以直接通过sql “start with ...connect by prior..”实现查出节点下的所有节点。
例如:
select t.group_id  from MOD_DATA_GROUP t start with t.group_id ='123' connect by prior t.group_id = t.parent_id.
执行的结果是123节点下的所有子节点。
但是mysql却不支持 start with . 如果想使用sql实现则需使用存储过程来实现。

第二种、通过程序递归实现。
public void getAllDeptListByParentId(Integer parentid,List<Dept> list){
		List<Dept> childList=getDeptListByParentId(parentid);
		if(childList.size()==0)return;
		for(Dept dept:childList){
			if(dept.getLeaf()==0){
				list.add(dept));
				getAllDeptListByParentId(dept.getId(),list);
			}else{
				list.add(dept);
			}
		}
	}

适用于并发量不大,性能要求不是太苛刻的场合,毕竟可能一次查询要操作N次数据库。
分享到:
评论

相关推荐

    javascript获取指定节点父节点、子节点的方法

    5. parentObj.getElementsByTagName(tagName):使用方法不再赘述,它返回已知节点的所有子节点中类型为指定值的子节点数组。 通过临近节点获取 1. neighbourNode.previousSibling:获取已知节点(neighbourNode)...

    根据父节点找所有子节点数据.zip

    在这个场景中,我们从给定的父节点出发,每次递归调用都会检查当前节点的每一个子节点,并将子节点添加到结果集中,如果子节点还有自己的子节点,就继续递归下去,直到遍历完所有子节点。 这个工具类可能包含以下几...

    树父节点递归获取树子节点

    为了实现递归,我们会在方法内部调用自身,对每个子节点继续获取其子节点,直到遍历完所有子节点。以下是一个示例实现: ```java import java.util.ArrayList; import java.util.List; public class TreeUtils { ...

    c# treeview 获取子节点

    例如,获取特定父节点下的所有子节点: ```csharp List&lt;TreeNode&gt; GetChildNodesByParent(string parentText) { List&lt;TreeNode&gt; children = new List(); foreach (TreeNode node in treeView1.Nodes) { if ...

    根据当前节点获取所有父节点信息

    根据当前节点获取所有父节点信息(18代)SQL根据当前节点递归遍历获取所有父节点信息,短短的SQL可以解决复杂的问题

    AjaxTree源码,AJAX动态获取节点的子节点

    AjaxTree是一款基于AJAX技术实现的树形视图控件,其核心特性在于能够动态地通过服务器请求获取节点的子节点数据,从而避免一次性加载大量数据导致页面性能下降的问题。这一设计模式在网页应用中非常常见,尤其是在...

    获取节点应力python子程序

    获取节点应力python子程序

    OSG中用遍历场景的方法获取节点

    下面我们将详细探讨如何在OSG中遍历场景并获取节点。 首先,OSG的场景图是由`osg::Node`对象组成的树形结构。每个节点可以包含子节点,形成层次化的结构。遍历这个树的过程就是遍历场景图。有几种不同的遍历方式,...

    文本框获取节点文本框获取节点

    - `element.childNodes`:获取所有子节点的集合。 6. **CSS选择器:** 使用`querySelector`或`querySelectorAll`方法可以更精确地定位文本框。例如,`document.querySelector('.className')`或`document....

    根据子节点查找所有父节点

    在IT领域,尤其是在软件开发中,经常会遇到需要根据...通过使用合适的搜索算法,我们可以有效地从树的任意子节点追踪到根节点,获取所有中间的父节点。在实际开发中,这样的操作对于理解和操作层次结构的数据至关重要。

    SQL 查询树形子节点.

    sql 查询 所有子节点 方法已经调试通过(sql-server 2005)

    删除XML根节点下的某子节点

    // 获取所有子节点 NodeList nodeList = doc.getDocumentElement().getChildNodes(); // 遍历并删除特定子节点 for (int i = 0; i (); i++) { Node node = nodeList.item(i); if ("child2".equals(node.get...

    对Xpath 获取子标签下所有文本的方法详解

    `string()`函数是XPath中用于获取节点文本内容的一个非常实用的方法。当你对一个节点集应用`string()`函数时,它会返回该节点集中第一个节点的字符串值。如果节点集为空,那么返回空字符串。在处理子标签下所有文本...

    jQuery获取节点和子节点文本的方法

    这个会得到“test text techbrood co.”,也就是会把当前元素的所有节点(包含子节点)的文本读取出来。 如果只想获取主节点的文本,方法复杂点: var text = $(#text_test).contents().filter(function() {

    javascript获取指定节点父节点、子节点的方法.pdf

    本文主要介绍如何使用JavaScript获取指定节点的父节点、子节点以及相邻节点的方法。 首先,我们可以从`document`节点开始获取元素。`document.getElementById()`是最常用的方法,通过元素的ID来精确获取元素。但...

    js实现获取列表中某个(些)节点所有子节点和直系父节点数据

    本主题探讨的是如何高效地实现一个功能,即获取列表中特定节点的所有子节点和直系父节点数据。这一过程涉及到递归、循环算法以及DOM节点的操作。 首先,我们需要理解JavaScript中的DOM(Document Object Model)...

    Delphi中创建简单XMl文件以及读取XML子节点下所有属性的方法

    本篇文章将详细讲解如何在Delphi中创建简单的XML文件,并介绍如何读取XML子节点下的所有属性。 首先,让我们了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等构成,...

    Delphi遍历某一节点下所有叶节点

    ### Delphi遍历某一节点下所有叶节点 在Delphi编程中,对于树形结构的操作是非常常见的需求之一,尤其是在处理类似文件系统、DOM文档对象模型等数据结构时。本篇文章将详细介绍如何使用后序遍历的方式,遍历某一...

    asp.net的Treeview的Checkbox选中父节点,选中全部子节点并且展开

    当用户勾选某个父节点的复选框时,希望该父节点下的所有子节点都能被自动选中,并且这些子节点能够自动展开显示。本文将详细介绍如何在 ASP.NET 应用程序中实现这一功能。 #### 一、问题背景及需求分析 在用户权限...

    zTree获取当前节点的下一级子节点数实例

    在本文中,我们将深入...在上述代码中,`findNodes`函数是一个很好的实践,它简洁且高效地解决了获取当前节点下一级子节点数的问题。在开发过程中,熟悉并灵活运用zTree的这些功能,可以大大提升开发效率和用户体验。

Global site tag (gtag.js) - Google Analytics