几种常用递归查询

向下查第几层
select max(LEVEL) as maxLevel
from T_lab a
start with a.lab_id =‘2015050510303643710‘
connect by prior a.lab_parentid = a.lab_id

<!-- 递归向下查询所有机构 -->
<select id="deptDataInit" parameterClass="map" resultClass="dto">
select deptname as text, deptid as id, parentid, type from EADEPT a where 1=1
<isNotEmpty prepend="AND" property="filtertype">
type != #filtertype#
</isNotEmpty>
start with a.deptid=#deptid# connect by prior a.deptid=a.parentid
order by type asc, sortno asc
</select>

<!-- 递归向上查询所有机构 -->
<select id="getParents" parameterClass="map" resultClass="dto">
select deptname as name, deptid as id, parentid, type from EADEPT a where 1=1
<isNotEmpty prepend="AND" property="filtertype">
type != #filtertype#
</isNotEmpty>
start with a.deptid=#deptid# connect by prior a.parentid=a.deptid
order by type asc, sortno asc
</select>

----------------------------------------------------------------------------------------------------------------

<sqlMap namespace="lab" >
<typeAlias alias="dto" type="org.eredlab.g4.ccl.datastructure.impl.BaseDto" />
<resultMap class="Dto" id="labParent">
<result property="id" column="id"/>
<result property="lab_userid" column="lab_userid"/>
<result property="lab_username" column="lab_username"/>
<result property="parentid" column="parentid"/>
<result property="name" column="name"/>
<result property="s_labfloor" column="s_labfloor"/>
<result property="s_labaddr" column="s_labaddr"/>
<result property="s_creater" column="s_creater"/>
<result property="d_createtime" column="d_createtime"/>
<result property="s_mark1" column="s_mark1"/>
<result property="children" column="id" select="lab.querylabchildren" javaType="java.util.List"/>
</resultMap>
<!-- 查询实验室 -->
<select id="querylabList" parameterClass="map" resultMap="labParent" remapResults="true">
select t.lab_id as id,t.lab_userid,t.lab_username,t.s_labname as name,t.lab_parentid as parentid,t.s_labfloor,t.s_labaddr,t.s_creater,
TO_CHAR(t.d_createtime,‘yyyy-mm-dd‘) as d_createtime,t.s_mark1
from T_lab t where 1=1
<dynamic>
<isNotNull prepend="and" property="lab_parentid">
t.lab_parentid=#lab_parentid#
</isNotNull>
<isNotNull prepend="and" property="lab_id">
t.lab_id=#lab_id#
</isNotNull>
</dynamic>
order by t.lab_id
</select>
<!-- 查询下级实验室 -->
<select id="querylabchildren" parameterClass="String" resultMap="labParent" remapResults="true">
select t.lab_id as id,t.lab_userid,t.lab_username,t.s_labname as name,t.lab_parentid as parentid,t.s_labfloor,t.s_labaddr,t.s_creater,
TO_CHAR(t.d_createtime,‘yyyy-mm-dd‘) as d_createtime,t.s_mark1
from T_lab t where 1=1 and t.lab_parentid=#id#
</select>

时间: 2024-10-29 19:56:59

几种常用递归查询的相关文章

几种常用排序算法(bubble、select、insert、shell、未完待续)

接下来两天重新看看几种常用的排序算法. 1.冒泡排序法 每次从 i=0开始比较相邻的元素,若arr[i]>arr[i+1],则交换它们.直到把最大的元素推向最后.回到 i=0,直至完成. 1 import java.util.Scanner; 2 class bubble 3 { 4 public static void main(String[] args) 5 { 6 int n,temp; 7 int i,j; 8 int[] arr=new int[10000]; 9 Scanner s

Apache的几种常用配置

Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. 下面介绍几个常用的apache命令: /usr/local/apache2/bin/apachectl -M  查看常见的模块(包括动态和静态) /usr/local/apache2/bin/apachectl -l    查看加载的静态模块 /usr/local/apache2/bin/apachectl -t    检查配置文件有无

TL431的几种常用用法

TL431的主要作用是使得电路获得更稳定的电压,TL431是一种较为精密的可控稳压源,有着较为特殊的动态阻抗.其动态响应速度快,输出噪声低,价格低廉. 注意上述一句话概括,就是便宜,精密可控稳压源TL431. TL431的输出电压可以通过两个电阻任意地设置到从2.5V到36V电压,工作电流可以从0.1~100mA,输出电压纹波低. 几种常用的用法如下: 上图中,REF为参考端,Anode为阳极,CATHODE为阴极.由于TL431内部自带2.5V基准源,所以对于图(1)的TL431接法,输出一个

结合Scikit-learn介绍几种常用的特征选择方法

作者:Edwin Jarvis 特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减少特征数量.降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 拿到数据集,一个特征选择方法,往往很难同时完成这两个目的.通常情况下,我们经常不管三七二十一,选择一种自己最熟悉或者最方便的特征选择方法(往往目的是降维,而忽略了对特征和数据理解的目的).

Java几种常用的实现排序方法

import java.util.Random; public class NumberSort{ /** * 私有构造方法,禁止实例化 */ private NumberSort(){ super(); } /** * 冒泡排序 * 比较相邻的元素.如果第一个比第二个大,就叫唤他们两个位置. * 对每一组相邻的元素作同样的工作,从开始的第一对到结束后的最后一对,这样剩下的最后一个应该是最大的数. * 针对所有元素重复以上操作,除了最后一个. * 持续对越来越少的数进行以上的操作,直到没有任何一

关于Java集合类库中的几种常用队列

Java中几种常用的队列 阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞.试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素.同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队列. 第一种:ConcurrentLinkedQueue,高性能无阻塞无界队列 代码demo: 1 Concurre

jQuery中ajax的4种常用请求方式

jQuery中ajax的4种常用请求方式: 1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息.详细参数选项见下. 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml"). 实例: 保存数据到服务器,成功时显示信息. $.ajax({ type: "post", dataType: "

DotNet中几种常用的加密算法

在.NET项目中,我们较多的使用到加密这个操作.因为在现代的项目中,对信息安全的要求越来越高,那么多信息的加密就变得至关重要.现在提供几种常用的加密/解密算法. 1.用于文本和Base64编码文本的互相转换 和 Byte[]和Base64编码文本的互相转换: (1).将普通文本转换成Base64编码的文本        /// <summary>         /// 将普通文本转换成Base64编码的文本        /// </summary>         /// &l

数据归一化和两种常用的归一化方法

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性.原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价.以下是两种常用的归一化方法: 一.min-max标准化(Min-Max Normalization) 也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间.转换函数如下: 其中max为样本数据的最大