怎么用springboot+mybatis plus实现树形结构查询
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要讲解了"怎么用springboot+mybatis plus实现树形结构查询",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用sprin
千家信息网最后更新 2025年12月03日怎么用springboot+mybatis plus实现树形结构查询背景
使用场景
设计思路
递归模型
实现代码
注意事项
这篇文章主要讲解了"怎么用springboot+mybatis plus实现树形结构查询",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用springboot+mybatis plus实现树形结构查询"吧!
背景
实际开发过程中经常需要查询节点树,根据指定节点获取子节点列表,以下记录了获取节点树的操作,以备不时之需。
使用场景
可以用于系统部门组织机构、商品分类、城市关系等带有层级关系的数据结构;
设计思路
递归模型
即根节点、枝干节点、叶子节点,数据模型如下:
| id | code | name | parent_code |
|---|---|---|---|
| 1 | 10000 | 电脑 | 0 |
| 2 | 20000 | 手机 | 0 |
| 3 | 10001 | 联想笔记本 | 10000 |
| 4 | 10002 | 惠普笔记本 | 10000 |
| 5 | 1000101 | 联想拯救者 | 10001 |
| 6 | 1000102 | 联想小新系列 | 10001 |
实现代码
表结构
CREATE TABLE `tree_table` ( `id` int NOT NULL AUTO_INCREMENT COMMENT "主键ID", `code` varchar(10) NOT NULL COMMENT "编码", `name` varchar(20) NOT NULL COMMENT "名称", `parent_code` varchar(10) NOT NULL COMMENT "父级编码", PRIMARY KEY (`id`) USING BTREE) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT="树形结构测试表";
表数据
INSERT INTO `tree_table`(`code`, `name`, `parent_code`) VALUES ("10000", "电脑", "0");INSERT INTO `tree_table`(`code`, `name`, `parent_code`) VALUES ("10001", "联想笔记本", "10000");INSERT INTO `tree_table`(`code`, `name`, `parent_code`) VALUES ("10002", "惠普笔记本", "10000");INSERT INTO `tree_table`(`code`, `name`, `parent_code`) VALUES ("1000101", "联想拯救者", "10001");INSERT INTO `tree_table`(`code`, `name`, `parent_code`) VALUES ("1000102", "联想小新系列", "10001");实体
@Data@TableName("tree_table")@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)public class TreeTable { /** * 主键ID */ @TableId(type = IdType.AUTO) private Integer id; /** * 编码 */ private String code; /** * 名称 */ private String name; /** * 父级编码 */ private String parentCode; /** * 子节点 */ @TableField(exist = false) private List childNode;} mybatis
mapper
public interface TreeTableMapper extends BaseMapper{ /** * 获取树形结构数据 * * @return 树形结构 */ public List noteTree();}
xml
id, code, `name`, parent_code
noteTree :获取所有父级节点数据;
nextNoteTree:循环获取子节点数据,知道叶子节点结束;
column:关联表的列名;
ofType:返回类型
启动类
@Slf4j@Componentpublic class TreeTableCommandLineRunner implements CommandLineRunner { @Resource private TreeTableMapper treeTableMapper; @Override public void run(String... args) throws Exception { log.info(JSONUtil.toJsonPrettyStr(treeTableMapper.noteTree())); }}最终效果
[ { "code": "10000", "childNode": [ { "code": "10001", "childNode": [ { "code": "1000101", "childNode": [ ], "parentCode": "10001", "name": "联想拯救者", "id": 5 }, { "code": "1000102", "childNode": [ ], "parentCode": "10001", "name": "联想小新系列", "id": 6 } ], "parentCode": "10000", "name": "联想笔记本", "id": 3 }, { "code": "10002", "childNode": [ ], "parentCode": "10000", "name": "惠普笔记本", "id": 4 } ], "parentCode": "0", "name": "电脑", "id": 1 }]注意事项
使用mybatis时如加载不到mapper xml需在pom.xml添加以下配置:
src/main/resources true src/main/java **/*.xml
感谢各位的阅读,以上就是"怎么用springboot+mybatis plus实现树形结构查询"的内容了,经过本文的学习后,相信大家对怎么用springboot+mybatis plus实现树形结构查询这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
节点
结构
树形
数据
笔记
笔记本
查询
编码
电脑
惠普
学习
内容
叶子
名称
思路
模型
不时之需
事项
代码
商品
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
校园网络专用服务器设备
数据库型号
字节服务器
云服务器数据删了怎么办
拉曼数据库软件
崂山区电商软件开发公司有哪些
云南省公安厅网络安全
海浪韬韬服务器
饥荒为什么进服务器卡
大专考研软件开发的大学
汪峰软件开发
12306 订票系统数据库
自觉维护网络安全班会稿
乡镇网络安全宣传会议
充分利用现代信息网络技术
查数据库询有先修课的课程号
护苗网络安全课打黄扫非
智能共享软件开发
邯郸市卫生系统人才数据库
天津特色软件开发方法
钱林杰 软件开发
数据库 蕴涵
做财务软件开发的公司
深圳计算机应用软件开发定做
2022年网络安全法考试题答案
学习软件开发的流程
数据库硬盘备份技术
服务器进去安全系统
公安局 数据库
我的世界手游服务器生存合集