Java 递归查询部门树形结构数据
说明:在开发中,我们经常使用树形结构来展示菜单选项,如图:
那么我们在后端怎么去实现这样的一个功能呢?
1、数据库表:department
2、编写sql映射语句
<select id="selectDepartmentTrees" resultType="com.welb.entity.Department">select * from department<where><if test="updepartmentcode!=null">and UpDepartmentCode=#{updepartmentcode}</if></where></select>
3、创建实体类
public class Department {private String departmentcode;//部门codeprivate String departmentname;//部门名称private String updepartmentcode="0";//上级部门private String departmentdesc;//部门描述private List<Department> childDept =new ArrayList();//部门信息树public String getDepartmentcode() {return departmentcode;}public void setDepartmentcode(String departmentcode) {this.departmentcode = departmentcode == null ? null : departmentcode.trim();}public String getDepartmentname() {return departmentname;}public void setDepartmentname(String departmentname) {this.departmentname = departmentname == null ? null : departmentname.trim();}public String getUpdepartmentcode() {return updepartmentcode;}public void setUpdepartmentcode(String updepartmentcode) {this.updepartmentcode = updepartmentcode == null ? null : updepartmentcode.trim();}public String getDepartmentdesc() {return departmentdesc;}public void setDepartmentdesc(String departmentdesc) {this.departmentdesc = departmentdesc == null ? null : departmentdesc.trim();}public List<Department> getChildDept() {return childDept;}public void setChildDept(List<Department> childDept) {this.childDept = childDept;}
}
4、定义mapper
@Mapper
public interface DepartmentMapper {List<Department>selectDepartmentTrees(Department department);}
5、定义service业务层实现
@Service
@Transactional
public class DepartmentImpl implements IDepartmentService {@ResourceDepartmentMapper departmentMapper;@Overridepublic List<Department> selectDepartmentTrees(Department department) {return departmentMapper.selectDepartmentTrees(department);}
}
6、控制层实现
@RestController
@RequestMapping("department")
public class DepartmentController {@ResourceIDepartmentService departmentService;@ResourceIStationService stationService;/*** 查询所有部门 树形展示所有部门 包含模糊查詢** @return*/@RequestMapping("/treelist")public Object selectAll(Department department) {ModelMap map = new ModelMap();try {List<Department> departmentDtos = getDepartmentList(department);map.put("msg", "查询部门成功");map.put("data", departmentDtos);map.put("code", 0);} catch (Exception e) {e.printStackTrace();map.put("msg", "查询部门失败");map.put("code", 1);}return map;}/*** 递归查询部门* @param department* @return*/private List<Department> getDepartmentList(Department department) {List<Department> departments =departmentService.selectDepartmentTrees(department);if (departments.size()>0){Department department1=new Department();for (int i = 0; i <departments.size() ; i++) {department1.setUpdepartmentcode(departments.get(i).getDepartmentcode());List<Department>dtos=getDepartmentList(department1);departments.get(i).setChildDept(dtos);}}return departments;}
}
7、进行测试,这里我用postmain工具测试,结果如下图
到这里,递归查询部门树形结构数据就完成了
Java 递归查询部门树形结构数据相关推荐
- java递归实现树形结构数据
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.树形结构是什么? 二.实现方案 1.stream流递归实现 1.1 实体类 1.2 实现类 2.jdk1.7以下实 ...
- oracle树状结构递归,Oracle:递归查询(树形结构数据)
Oracle树形结构数据-相关知识总结 Oracle树形结构数据--基本知识 1.数据组成 2.基本查询 2.1.查询某节点及该节点下的所有子孙节点 SELECT * FROM QIAN ...
- Oracle:递归查询(树形结构数据)
今天要做一个查询功能:查询某用户所属部门,且包含该部门的所有上级部门信息.偶然找到了一个方法,特意来做个笔记.分享给和我一样的菜鸟,哈哈 查询子节点 1 select * 2 from d_arc_d ...
- java代码将树形数据输出为excel表格(可以渲染无限级)
这次的解决方案是采用Springboot项目+swagger+druid连接池+oracle数据库,如有需要请自行更换数据库 pom #jdk版本 <properties><java ...
- Java递归查询某个节点下所有子节点多级信息(递归部门查询,递归树形结构数据查询)
前言 在做项目中我们会遇到树形结构数据,如果我们想要查询某个几点下面所有子节点(多级)数据,此时我们又不知道下面有多少级节点以及节点ID,那么我们就需要使用递归去查询了,当然在数据库中写函数也是可以实 ...
- Java 树形结构数据生成--不需要顶级节点
概要 树形结构数据是后台开发中非常常见的一种数据结构.后台管理系统中必要的一种结构,常见的树形结构数据有,部门树,权限树等等,利用该数据结构可以让你的系统数据展示一目了然,并且为分配这些数据也提供了极 ...
- Java 递归查询该部门,及其下属部门,所有用户
Java 递归查询该部门,及其下属部门,所有用户: Set<User> userSet 作为传入参数,并将其作为返回值, 随着递归查询,执行 userSet.addAll(users); ...
- Java 后端实现全国省市区树形结构数据查询
使用到的sql文件自取 链接:https://pan.baidu.com/s/1YmpGH6UXCgie-T6xUrIwxQ 提取码:regn entity import lombok.Data;im ...
- java组装树状结构数据集合_JAVA构建List集合为树形结构
package com.zving.tree; import java.util.ArrayList; import java.util.List; /** * 树形结构实体类 * @author c ...
最新文章
- 在 CentOS7 安装 ELK【转】
- JZOJ 5163. 【NOIP2017模拟6.25】PS的烦恼
- LeetCode刷题-两数之和(持续更新)
- 多因素方差分析中预测因素的筛多_用回归来理解方差分析(二):两因素方差分析...
- RabbitMq入门(七)消息处理(消息持久化autoDelete、消息确认ACK机制)
- SWT、JavaFx十种页面布局快速理解
- Zookeeper集群详解
- python 装饰器粗浅理解
- 启动与关闭VMware Workstation的BAT批处理脚本
- STSegmentedControl
- 支持带有书签的PDF生成的文本编辑工具Typora
- 实习成长之路:MySQL七:事务到底是隔离的还是不隔离的?
- SLAM--Pangolin显示相机位姿
- 最强数据库工具——IDEA
- 面试:Spring Boot的优缺点
- PowerDNS Authoritative Server 3.3 发布
- GD25Qxxx使用笔记
- Ubuntu系统进行复制粘贴文件显示没有权限的解决办法
- 模型评价方法及代码实现
- 怎么样在Linux上使用AppImage?