`
xyxsl
  • 浏览: 9779 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

递归读取数据库记录

    博客分类:
  • java
阅读更多
前日看到一个递归读取数据库的javabean,是运用集合实现的,就尝试直接用java类实现,呵呵,结果出来啦,但没测试性能如何
表结构:organId int;organName String;superId int(上一级代码,根目录上级代码为0);
package service;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import DbUtil.DBConnectionManager;

public class organService{

public String getOrgan() {
String returnStr="<List>";
DBConnectionManager connectionMan = DBConnectionManager.getInstance();
Connection con = connectionMan.getConnection("report");
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select *  from organ where superId=0");
while (rs.next()) {
returnStr=returnStr+"<rogan id='"+rs.getInt("organId")+"' name='"+rs.getString("organName")+"' superid='"+rs.getInt("superId")+"'>";
returnStr=returnStr+getSub(con,rs.getInt("organId"));
returnStr=returnStr+"</rogan>";
}
rs.close();
rs=null;
stmt.close();
stmt=null;

} catch (SQLException e) {
System.out.println("SQLException error:" + e);
} finally {
connectionMan.freeConnection("report", con);
}
returnStr=returnStr+"</List>";
return returnStr;
}

public String getSub(Connection con,int superId)throws SQLException {
String Str="";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select *  from organ where superId="+superId);
while(rs.next()){
Str=Str+"<rogan id='"+rs.getInt("organId")+"' name='"+rs.getString("organName")+"' superid='"+rs.getInt("superId")+"'>";
Str=Str+getSub(con,rs.getInt("organId"));
Str=Str+"</rogan>";
}
rs.close();
rs=null;
stmt.close();
stmt=null;
return Str;
}

}
分享到:
评论

相关推荐

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

    在处理树型结构时,递归特别有用,因为每个节点(数据库记录)可能有零个、一个或多个子节点,这与递归函数处理子问题的概念相吻合。 1. **数据库设计**: - 数据库表通常有一个字段表示父节点ID,以此建立父子...

    使用递归循环读取省市区json文件数据,并保存到数据库中

    - 对每个省市区节点,创建或更新相应的数据库记录。 - 在处理完所有节点后,关闭数据库连接。 4. **代码实现**: 代码中应该包含以下部分: - 读取JSON文件并解析成Python对象。 - 定义递归函数,处理每个省市...

    Tree(将数据库记录生成树)

    总之,"Tree(将数据库记录生成树)"是一个涉及数据结构、XML转换和递归算法的复杂任务。通过Java编程,我们可以高效地完成这个任务,将数据库的记录以层次结构的方式展现,从而提高数据的可读性和操作性。理解并...

    数据库备份文件读取小程序

    1. 文件解析:为了读取数据库备份文件,程序需要能够解析特定数据库系统的备份格式。例如,对于MySQL,可能需要处理`.sql`或`.binlog`文件;对于SQL Server,可能是`.bak`文件;Oracle可能使用`.dmp`文件。因此,...

    读取数据库 动态生成树节点

    如果数据库中的一条记录的`ParentId`是另一条记录的`Id`,那么这条记录就是那条记录的子节点。这个过程可以通过循环遍历查询结果,逐个添加节点来实现。在这个例子中,我们使用了一个字典来存储已经添加的节点,以便...

    Delphi读取数据库并建立Treeview树状视图目录..rar

    这个“Delphi读取数据库并建立Treeview树状视图目录”的示例教程可能涵盖了如何将数据库记录结构化为树形层次结构的关键技术。 首先,让我们了解基本概念。Delphi是一款基于Object Pascal的集成开发环境(IDE),...

    游标存取 利用递归再将此下属的下属插入返回表

    通过一个`while`循环,逐条读取游标中的记录,并执行以下操作: 1. **直接插入**:将当前下属的信息直接插入到`@MYFUNC`表中。 2. **递归插入**:调用自身函数`MYFUNCTION1`,并将当前下属的社会安全号码作为参数...

    非递归二叉树递归创建.txt

    在计算机科学中,二叉树是一种常见的数据结构,它广泛应用于算法设计、数据库索引构建以及各种搜索操作中。通常,二叉树的创建与遍历可以通过递归的方式来实现,但递归方法在某些情况下可能会导致栈溢出等问题。因此...

    全面递归省市区存库.zip

    "全面递归省市区存库.zip" 提供的资源显然是针对中国行政区域数据的一种处理方案,利用递归算法将省、市、区的数据从JSON文件读取并存储到数据库中。这个过程涉及了多个技术点,包括JSON解析、递归算法的理解与应用...

    edb课堂数据库用户登录

    这可能包括解析数据库返回的记录,将它们存储在内存中的数据结构(如数组或列表)中,以便进一步处理或展示给用户。 5. **显示数据**:在用户界面设计中,将数据有效地展示给用户是至关重要的。这可能涉及创建表格...

    C#读取本地项目所有文件后存储到MYSQL数据库中

    在本文中,我们将深入探讨如何使用C#编程语言来读取本地项目的文件,并将这些文件存储到MySQL数据库中。此过程对于数据备份、版本控制或远程恢复文件至特定位置非常有用。以下是一些关键知识点: 1. **C# 文件操作*...

    树型结构的一个例子

    在这个示例中,"Unit1.pas"可能包含了实现递归读取数据库数据并填充TTreeview组件的代码。递归是一种函数调用自身的技术,通常用于处理具有相同模式的问题,如遍历树结构。 数据库文件"CreateTree.mdb"很可能是使用...

    TreeView与数据库

    在IT领域,`TreeView`控件是Windows应用程序中常见的组件,通常用于呈现层次结构的数据,如文件系统、组织结构或数据库记录。这个组件允许用户以树状视图浏览信息,提供了一个直观的方式来交互和操作数据。本文将...

    以往的目录树在实现的时候,总是用嵌套循环的方式来读出数据库中的树形结构。非常的浪费资源,在实现目录树编辑的时候很简单。

    以往的目录树在实现时,通常采用嵌套循环的方式来读取数据库中的树形结构,这种方法虽然在实现目录树编辑时较为简单,但存在着资源浪费的问题。这种传统的处理方式主要是因为数据库设计与查询策略的局限性所致,下面...

    树结点操作数据库(c# 2005)

    1. **读取所有树结点**:为了从数据库中递归地读取所有树结点,我们可以编写一个方法,接受根节点的ID,然后递归地获取其所有子节点。这个过程可以使用`LEFT JOIN` SQL查询来实现,配合C#的`ExecuteReader`方法获取...

    树型框读出EDB数据库-易语言

    本文将深入探讨如何使用易语言这一国产编程语言来实现对EDB(Enterprise Database)数据库的读取,并将数据以树型框的形式展示出来。EDB数据库常用于企业级应用,它具有高效、安全、稳定等特点,因此掌握如何操作EDB...

    treeview动态添加节点内容 立刻保存至数据库

    修改节点只需要更新对应的数据库记录。删除节点时,需要先从`TreeView`中移除,然后从数据库中删除记录。以下是一个删除节点的例子: ```csharp // 获取要删除的节点ID int nodeIdToDelete = (int)selectedNode.Tag...

    数据库助手功能

    数据库助手功能是一款基于C#编程语言开发的软件,它的核心特性是能够对Excel文件进行操作,并且在处理数据时利用了独特的数据库排序算法以及程序中的递归算法。这个工具为用户提供了高效的数据管理手段,特别是在...

    asp无限级分类源代码(带数据库)+示例

    使用ASP访问这个数据库时,可以查询、更新和插入分类记录,以实现无限级分类的动态管理。 5. **示例**: 提供的示例可能包含如何使用`class.asp`中的类来操作数据库,展示如何在实际项目中应用无限级分类。示例...

    数据库学习SQL+PL/SQL(ppt)

    数据库是存储和管理数据的核心工具,SQL(Structured Query Language)是用于操作数据库的语言,而PL/SQL是Oracle数据库中的一种编程语言,它扩展了SQL的功能,使得开发者能够编写复杂的数据库应用。以下是对这些...

Global site tag (gtag.js) - Google Analytics