Java工作需求后端代码--实现树形结构

加油,新时代打工人!

前端页面
带树形结构的表格

最近在新项目上加班加点,下面是个实现树形结构的数据表格。
需求:
在前端页面表格中展示成树形结构的数据。
技术:
后端:Java、Mybatis-Plus、HuTool树形的工具类、Mysql
前端:Element UI
表结构

categoriyid	int(11)	NO	PRI		auto_increment
categoriycode	int(10)	YES	UNI		
categoriyname	varchar(50)	YES			
categoriyitemid	int(11)	YES			
status	int(2)	YES		0	
createtime	timestamp	YES		CURRENT_TIMESTAMP	DEFAULT_GENERATED
updatetime	timestamp	YES		CURRENT_TIMESTAMP	DEFAULT_GENERATED

在这里插入图片描述
HuTool工具类Jar

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version>
</dependency>

Java实现类代码,用的Mybatis-plus,sql语句都省了

    @Autowiredprivate CategoriyDao categoriyDao;@Overridepublic List<Tree<Object>> getCategoriyList(CategoriyListVo categoriyListVo) {//1.没有条件查询所有的,可以根据自己的需求,加上查询条件,如查询状态已启用的QueryWrapper<CategoriyListVo> queryWrapper = new QueryWrapper<>();List<CategoriyListVo> dataList  = categoriyDao.selectList(queryWrapper);//2.配置TreeNodeConfig config = new TreeNodeConfig();config.setIdKey("id");      //默认id,可以不设置config.setParentIdKey("categoriyitemid");    //父idconfig.setNameKey("categoriyname");   //分类名称config.setDeep(2);      //最大递归深度config.setChildrenKey("children"); //孩子节点//3.转树List<Tree<Object>> treeList = TreeUtil.build(dataList, "0", config, ((object, treeNode) -> {treeNode.setId( object.getCategoriyid().toString());treeNode.setParentId(object.getCategoriyitemid().toString());treeNode.setName(object.getCategoriyname());//扩展字段treeNode.putExtra("categoriycode",object.getCategoriycode());//分类编码treeNode.putExtra("status",object.getStatus().toString());//状态}));return treeList;}

数据返回
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/520431.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最佳牛围栏(二分 + 前缀和)

最佳牛围栏 原题链接&#xff1a;https://www.acwing.com/problem/content/104/ 题目 思路 我们发现若是枚举答案的话&#xff0c;那么我们判断是否存在一个平均值大于等于mid&#xff0c;如果最优解是x&#xff0c;那么mid < x的时候&#xff0c;必然可以找到一段&#x…

[HackMyVM]靶场 Run

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…

云计算项目八:Harbor

部署企业私有镜像仓库Harbor 私有镜像仓库有许多优点&#xff1a; 节省网络带宽&#xff0c;针对于每个镜像不用每个人都去中央仓库上面去下载&#xff0c;只需要从私有仓库中下载即可提供镜像资源利用&#xff0c;针对于公司内部使用的镜像&#xff0c;推送到本地私有仓库中…

C++ 11 新特性 override和final

一.override和final介绍 在C11中&#xff0c;override和final是两个用于支持继承和多态的重要关键字。它们的具体作用如下&#xff1a; override&#xff1a;这个关键字用于派生类中&#xff0c;以确保虚函数的正确重写。当一个派生类的函数被声明为override时&#xff0c;编译…

物联网智慧大屏

随着物联网技术的飞速发展&#xff0c;物联网智慧大屏已经成为企业数字化转型的关键组件。那么&#xff0c;什么是物联网智慧大屏&#xff1f;它为企业带来了哪些价值&#xff1f;让我们一起来探索。 一、什么是物联网智慧大屏&#xff1f; 物联网智慧大屏&#xff0c;作为物联…

【Linux C | 网络编程】多播的概念、多播地址、UDP实现多播的C语言例子

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

python界面开发 - Menu (popupmenu) 右键菜单

文章目录 1. python图形界面开发1.1. Python图形界面开发——Tkinter1.2. Python图形界面开发——PyQt1.3. Python图形界面开发——wxPython1.4. Python图形界面开发—— PyGTK&#xff1a;基于GTK1.5. Python图形界面开发—— Kivy1.6. Python图形界面开发——可视化工具1.7. …

『 Linux 』Process Control进程控制(万字)

文章目录 &#x1f996; 前言&#x1f996; fork()函数调用失败原因&#x1f996; 进程终止&#x1f4a5; 进程退出码&#x1f4a5; 进程正常退出 &#x1f996; 进程等待&#x1f4a5; 僵尸进程&#x1f4a5; 如何解决僵尸进程的内存泄漏问题&#x1f4a5; wait( )/waitpid( )…

小火星露谷管理器建议的模组安装文件结构

建议的模组安装文件结构 小火星露谷管理器希望用户将所有模组直接解压到Mods这一层目录&#xff0c;而不是嵌套存放。 比如你安装了两个模组&#xff0c;Content Patcher和Custom Companions&#xff0c;你应该直接解压到Mods文件夹中&#xff0c;并保证解压的内容全部在一个…

【动态规划】完全背包

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;完全背包 &#x1f449;&#x1f3fb;…

素数求解的N种境界

本期介绍&#x1f356; 主要介绍&#xff1a;如何快速筛查出素数的各种方法&#x1f440;。 文章目录 1. 前言2. 试除法2.1 试除2~(n-1)2.2 排除2倍数的合数2.3 试除2~sprt(n) 3. 筛选法3.1 如何实现筛除法求素数3.2 优化代码 4. 总结 1. 前言 素数又称质数(prime number)&…

opencv解析系列 - 基于DOM提取大面积植被(如森林)

Note&#xff1a;简单提取&#xff0c;不考虑后处理&#xff08;填充空洞、平滑边界等&#xff09; #include <iostream> #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include <opencv2/opencv.hpp> using namespace cv…