数据库结构

返回值DTO

package cn.yibiao163.unit.api.dto;import cn.yibiao163.common.web.dto.AbstractResultDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;import java.util.List;/*** 国民经济行业分类与代码表** @author yyh* @date 2021-07-30 15:06*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ApiUnitIndustryCategoryResponseDTO extends AbstractResultDTO {private static final long serialVersionUID = 1L;/*** 国民经济行业分类与代码表主键*/private String id;/*** 级别*/private Integer level;/*** 行业代码*/private String industryCode;/*** 行业名称*/private String industryName;/*** 父ID*/private String parentId;/*** 子节点*/private List<ApiUnitIndustryCategoryResponseDTO> children;}

controller层

package cn.yibiao163.unit.api.controller;import cn.yibiao163.common.web.base.AbstractBaseController;
import cn.yibiao163.common.web.dto.ResultDTO;
import cn.yibiao163.unit.api.dto.ApiUnitIndustryCategoryResponseDTO;
import cn.yibiao163.unit.service.UnitIndustryCategoryService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** 国民经济行业分类与代码表*/
@RestController
@RequestMapping("/api/unit/v1/unitIndustryCategory")
@AllArgsConstructor
public class ApiUnitIndustryCategoryController extends AbstractBaseController {private final UnitIndustryCategoryService unitIndustryCategoryService;/*** 查询所有行业分类列表** @return 行业分类树形结构*/@GetMapping("/dep")public ResultDTO<List<ApiUnitIndustryCategoryResponseDTO>> getUnitIndustryCategoryTree() {return ResultDTO.success(unitIndustryCategoryService.getUnitIndustryCategoryTree());}
}

service层

/*** 查询所有行业分类列表**/public List<ApiUnitIndustryCategoryResponseDTO> getUnitIndustryCategoryTree() {List<UnitIndustryCategory> entities = list();//把UnitIndustryCategory的数组entities包装成ApiUnitIndustryCategoryResponseDTO数组List<ApiUnitIndustryCategoryResponseDTO> responseDTOList = entities.stream().map(unitIndustryCategory -> {ApiUnitIndustryCategoryResponseDTO responseVO = new ApiUnitIndustryCategoryResponseDTO();BeanUtils.copyProperties(unitIndustryCategory, responseVO);return responseVO;}).collect(Collectors.toList());//filter是java8的写法,取得所有parentId为0的数据,也就是一级目录//map也是java8的写法,用于封装数据,取得他的孩子(也就是下级目录)的数据List<ApiUnitIndustryCategoryResponseDTO> list = responseDTOList.stream().filter(responseVO ->"0".equals(responseVO.getParentId())).map((menu) -> {menu.setChildren(getChildrenData(menu, responseDTOList));return menu;}).collect(Collectors.toList());return list;}/*** 获取孩子(下级目录)的方法,递归实现*/private List<ApiUnitIndustryCategoryResponseDTO> getChildrenData(ApiUnitIndustryCategoryResponseDTO root, List<ApiUnitIndustryCategoryResponseDTO> all) {List<ApiUnitIndustryCategoryResponseDTO> children = all.stream().filter(responseVO ->responseVO.getParentId().equals(root.getId())).map(responseVO -> {responseVO.setChildren(getChildrenData(responseVO, all));return responseVO;}).collect(Collectors.toList());return children;}

返回结果

Java查询返回值为树形结构相关推荐

  1. JdbcTemplate(操作数据库-查询返回值)

    目录 JdbcTemplate(操作数据库-查询返回值) 1.创建数据库 2.创建实体类 3.创建dao层 4.创建service层 5.创建测试类: 6.xml配置 7.测试结果: 8.结构示意: ...

  2. java 接口 返回值_java api返回值的标准化详解

    api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\ ...

  3. c语言 返回函数是结构体指针变量,一个函数返回值为指向结构体的指针的问题...

    一个函数返回值为指向结构体的指针的问题 #include #include struct student { int num; char name[10]; struct student *next; ...

  4. Java方法返回值类型归纳

    Java方法返回值类型归纳 我们再调用一个方法时,将方法体内产生的一条数据输出到方法体外使用,这条数据我们叫做返回值. 返回值类型分为两大类:第一类,无返回值类型:void.第二类,有返回值类型,返回 ...

  5. dwr java有返回值但是js获取不到返回值_一探究竟:Java反射效率低的原因到底在哪?...

    预备知识 了解 Java 反射基本用法 看完本文可以达到什么程度 了解 Java 反射原理及 Java 反射效率低的原因 文章概览 我们在 Java 开发中,难免会接触到反射,而在一些框架中,反射的运 ...

  6. java 树结构_Java通用tree树形结构

    前言 现在大部分都是后端封装树形结构,第一次做的时候想从网上找通用,发现大部分都是要用类的get/set方法,不一样就要改,毕竟懒,改就改改,后来发现部门要,地区要,分类要,于是想着就把之前的用注解和 ...

  7. java实现处理无限层级树形结构

    树形结构在实际业务中是很经常遇到的,比如说机构.菜单.部门等等业务就会经常遇到层级关系.一般层级处理,有两种方式 (1)将所有的数据返回给前端,由前端处理,组装成树形结构,别担心,前端有组件的,只要后 ...

  8. Mybatis 查询 返回值中只有id有值,其他都是null;

    最近在重温mybatis, 但是在做练习的时候发现一个问题; 查询,简单的查询,返回之后发现结果中,只有id被映射了值,其他属性都是null; 很纳闷,为什么一个简单的测试会出现这种问题; 一开始以为 ...

  9. java 通用扁平数据转换成树形结构

    大家好,我是入错行的bug猫.(http://blog.csdn.net/qq_41399429,谢绝转载) 所谓树形结构,就是上级节点中,包含若干子节点,然后子节点中又包含其子节点,一般是没有层级次 ...

  10. java executenonquery_ExecuteNonQuery()返回值

    查询某个表中是否有数据的时候,我用了ExecuteNonQuery(),并通过判断值是否大于0来判断数据的存在与否.结果与我所设想的很不一致,调试时才发现,其执行后返回的结果是-1,对此我很是不理解, ...

最新文章

  1. 王者S19服务器维护时间表,王者荣耀s19buff刷新时间一览 红蓝BUFF刷新间隔是多久...
  2. 左侧宽度固定,右侧宽度自适应-----两种布局样式
  3. WCF 第二章 契约 单向操作
  4. Android开发之百度地图距离判断(判断定位位置是否在圆的范围内)
  5. 为什么技术人一定要懂点“可信计算”?
  6. 利用stack结构,将中缀表达式转换为后缀表达式并求值的算法实现
  7. xshell如何设置选中复制_Xshell
  8. SpringBoot+Vue实现前后端分离的旅游推荐网站
  9. JAVAWeb富文本编辑器文件上传操作
  10. 2022 下半年一定不要裸辞!
  11. 目标检测简介和滑动窗口
  12. 华为企业云如何让 DevOps 真正落地?
  13. 矩阵旋转(逆时针九十度
  14. 杰理-手表-AC701-watch-添加表盘
  15. excel箱形图中位数_在Excel中创建简单的箱形图
  16. 十大IT网站排名 及IT论坛(技术社区)排名
  17. 风速风向传感器使用方法
  18. 无线连接服务器会消耗资源么,一秒钟法则:来自腾讯的无线研发经验
  19. 智慧交通:监管可视化系统的解决方案
  20. 一张技术峰会的PPT

热门文章

  1. 学习sift算法的原理和步骤_大白话人工智能算法-第32节集成学习之通俗理解XGBoost原理和过程
  2. VREP学习记录(持续更新)
  3. Java开发规范之常量定义篇
  4. linux、docker容器缺少tailf命令,解决方案。
  5. 计算机操作系统笔记总结:Part1 计算机系统概述
  6. 3D MAX卸载“windows找不到文件”的解决办法
  7. LeetCode——75. 颜色分类(面试题)
  8. IBM GPFS并行文件系统
  9. HTMLpre代码美化
  10. 【机器人学习】六自由度机械臂动力学分析(扭矩计算)