List集合转化为Tree父子节点结构数据的demo实现

本文介绍如何将MySQL查询的父子节点数据转化为Tree结构。利用自定义Bean、MyBatis Mapper及工具类实现数据转换,并通过Spring MVC提供RESTful API。

在这里插入图片描述

前言说明

此文章是衔接MySQL根据父子节点向上/向下递归查询SQL实现Demo的后续,在上篇文章中我们知道了怎么在数据库中去通过递归函数,向上或者向下递归查询节点数据,那么这篇文章是一个比较完整讲解了从数据库出来的数据,怎么转化为Tree结构的数据返回给前端,效果图可见下图。

效果图

  1. 根据父节点递归查子节点数据库查询图和代码转化为Tree结构数据图
    在这里插入图片描述
    在这里插入图片描述
  2. 根据子节点递归向上查父节点数据库图和代码转化为Tree结构数据图
    在这里插入图片描述
    在这里插入图片描述

数据库脚本

表结构

CREATE TABLE `school` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `parent_id` int(11) NOT NULL COMMENT '父层级id',
  `sname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '名称',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

初始化数据

INSERT INTO `test`.`school`(`id`, `parent_id`, `sname`) VALUES (1, -1, '大学');
INSERT INTO `test`.`school`(`id`, `parent_id`, `sname`) VALUES (2, 1, '高中');
INSERT INTO `test`.`school`(`id`, `parent_id`, `sname`) VALUES (3, 2, '小学');
INSERT INTO `test`.`school`(`id`, `parent_id`, `sname`) VALUES (4, 3, '学前班');
INSERT INTO `test`.`school`(`id`, `parent_id`, `sname`) VALUES (5, 3, '一年级');
INSERT INTO `test`.`school`(`id`, `parent_id`, `sname`) VALUES (6, 3, '二年级');
INSERT INTO `test`.`school`(`id`, `parent_id`, `sname`) VALUES (7, 1, '国中');
INSERT INTO `test`.
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值