Java|Java 递归查询部门树形结构数据的实践

说明:在开发中,我们经常使用树形结构来展示菜单选项,如图:

Java|Java 递归查询部门树形结构数据的实践
文章图片


那么我们在后端怎么去实现这样的一个功能呢?
1、数据库表:department

【Java|Java 递归查询部门树形结构数据的实践】Java|Java 递归查询部门树形结构数据的实践
文章图片

2、编写sql映射语句

select * from departmentand UpDepartmentCode=#{updepartmentcode}

3、创建实体类
public class Department {private String departmentcode; //部门codeprivate String departmentname; //部门名称private String updepartmentcode="0"; //上级部门private String departmentdesc; //部门描述private List 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 getChildDept() {return childDept; }public void setChildDept(List childDept) {this.childDept = childDept; }}

4、定义mapper
@Mapperpublic interface DepartmentMapper {ListselectDepartmentTrees(Department department); }

5、定义service业务层实现
@Service@Transactionalpublic class DepartmentImpl implements IDepartmentService {@ResourceDepartmentMapper departmentMapper; @Overridepublic List 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 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 getDepartmentList(Department department) {List departments =departmentService.selectDepartmentTrees(department); if (departments.size()>0){Department department1=new Department(); for (int i = 0; i dtos=getDepartmentList(department1); departments.get(i).setChildDept(dtos); }}return departments; }}

7、进行测试,这里我用postmain工具测试,结果如下图

Java|Java 递归查询部门树形结构数据的实践
文章图片


到这里,递归查询部门树形结构数据就完成了
到此这篇关于Java 递归查询部门树形结构数据的实践的文章就介绍到这了,更多相关Java 递归查询树形结构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读