递归查询该部门下所有子部门

 public class AddressServiceImpl implements AddressService {//定义全局变量idList,查出该部门下的子部门后,放进去
    private  List<Long> idList=new ArrayList();
    @Autowired
    private AddressMapper addressMapper;

    @Override
    public List<Address> selectInParent(Long id) {
        List<Long> ids=getIds(id);
        ids.add(id);
        List<Address> addressList=addressMapper.selectInParent(ids,Constants.ABLE_CONFIG.DEFAULT_ABLE);//***用完后清空该集合,不然再次查询时,之前的查询的部门也在里面
        idList.clear();
        return addressList;
    }

//递归方法,私有的
    private List<Long> getIds(Long id){
        List<Address> list=addressMapper.selectByParent(id,Constants.ABLE_CONFIG.DEFAULT_ABLE);

        for (int i=0;i<list.size();i++){
            idList.add(list.get(i).getId());
            getIds(list.get(i).getId());
        }
        return idList;
    }

}
时间: 2024-08-29 11:19:37

递归查询该部门下所有子部门的相关文章

ext树表

如上是效果图: 做成简单的树表: 具体代码如下: 前台jsp: <%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ include file="/WEB-INF/views/commons/taglibs.jsp"%> <html> <head> <script type="text/javasc

MySql数据库查询多级部门及其下的所有用户信息

关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,  mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过数据库函数来实现 1.建表 ①  机构表 CREATE TABLE `t_sys_org` ( `ID` varchar(64) NOT NULL COMMENT '主键ID', `CODE` varchar(60) DEFAULT NULL COMMENT '编码', `NAME` varchar(200)

多级部门查询性能问题解决方案

目录 项目吐槽 遇到的问题 1.mysql函数group_contact()返回值限制 2. Impala使用in语句存在限制 解决方案 优化MySQL函数递归调用方案 将Impala的in查询转换为等值查询 总结 项目吐槽 其实,涉及部门层级关系的问题在很多情形下都会遇到,特别是针对toB的应用开发场景. 但奇葩的是,在我们的项目里头,项目经理在前期需求调研时,预估的用户部门最大数为1k,于是相关的开发同事就按照最大数1k*4=4k的目标进行了设计实现,而真正交付到用户生产环境时同步的数据是1

SQL查询父节点下的所有子节点(包括子节点下的子节点,无限子节点)

-->Title:Generating test data -->Author:wufeng4552 -->Date :2009-09-30 08:52:38 set nocount on if object_id('tb','U')is not null drop table tb go create table tb(ID int, ParentID int) insert into tb select 1,0 insert into tb select 2,1 insert int

小猿圈之MySql递归查询

不管学习什么语言,python.java.php等等如果你以后的方向是web,那么你都离不开数据库,mysql数据库又是开源的,所以是最受欢迎的数据库,也是企业用的最多的数据库,小猿圈老师详解mysql的递归查询,不懂的同学可以看过来了. 一.递归语句 -- 向下递归函数 SELECT GROUP_CONCAT('''', pk_dept , '''') FROM rzzxdb.bi_dept WHERE FIND_IN_SET(fr_pk_dept,'1070')>0; 设置某个部门下的所有子

jqxtree异步加载部门树

整体思路 A.要想实现异步加载第一次加载的是一级部门 B.加载一级部门,如果有子部门,部门前面带+号,没有子部门,部门前面没有+号(+号也就是点击可以展开) C.在sql中实现如果有子部门默认都加载一个子部门名称为“查询中...”的部门,id自己定唯一就行,这样就可以实现加载的一级部门到底前面带不带+号 D.当点击可以展开的部门时,将部门为“查询中...”的替换为异步查出来的部门 1.引入样式和js(差不多能用到的都引入吧以便以后能用到) <link rel="stylesheet&quo

SQL Server使用递归查询数据

功能描述:有两张表,一张业务部门表A(A表中存某公司的所有业务部门信息),另一张表为用户表B(B表中存某公司所有用户所在的业务部门信息),要求使用SQL语句查询出各个部门的用户数量(注意:统计各业务部门的用户数量时,需要将其下所有子部门的用户统计进去): 表A: 表B:     方法描述: 使用SQL Server的递归方式: 1.先联合两张表查询数据,并将查询出的结果存放在临时表中: 2.使用cte方法从临时表中查询数据: 具体的SQL脚本如下: select B.用户名, B.业务部门, A

数据库部门数据生成xml树

部门bean主要代码     private String deptname;//部门名称     private String deptcode;//部门编码     private String fdeptcode;//上级部门编码     private String isleaf;//是否为叶子部门     private List<Dep> children;//子部门集合     private String id;//部门id     //设置如何获取子部门     public

HBase 3、HBase练习题-学生课程表维护与查询

1.建立学生和课程表 要求:学生可以选择多个课程,每个课程可以被多个学生选择. 查询某个学生所选的所有课程列表 查询某个课程,的学生列表 学生可以修改所选的课程 方案:学生与课程之间是多对多关系,那可以建三张表 学生表.课程表.学生课程关系表 查询某个学生所选的所有课程列表:通过学生ID到学生课程表中去匹配RowKey为studentxxx的记录,然后再根据获取到的记录可以得到课程ID(即RowKey_后的部分): 然后再根据课程ID获取到课程的名称等内容: 查询某个课程,的学生列表:通过课程I