当前位置: 首页 > wzjs >正文

达内网站开发视频教程做彩票网站违法吗

达内网站开发视频教程,做彩票网站违法吗,公司网站上传ftp教程,免费做网站哪里有在管理菜单、部门结构等场景时,我们经常需要将数据库中的层级数据转换为树形结构。本文将通过Hutool的TreeUtil工具类,实现零递归快速构建树形结构。 一、环境准备 JDK 1.8Spring Boot 2.xHutool 5.8.16MySQL 8.0 二、数据准备 -- 创建部门表 CREATE…

在管理菜单、部门结构等场景时,我们经常需要将数据库中的层级数据转换为树形结构。本文将通过Hutool的TreeUtil工具类,实现零递归快速构建树形结构。

一、环境准备

  • JDK 1.8+
  • Spring Boot 2.x
  • Hutool 5.8.16
  • MySQL 8.0

二、数据准备

-- 创建部门表
CREATE TABLE `sys_dept` (`id` int NOT NULL AUTO_INCREMENT,`dept_name` varchar(50) NOT NULL COMMENT '部门名称',`parent_id` int NOT NULL DEFAULT '0' COMMENT '父部门ID',`sort` int DEFAULT '0' COMMENT '排序',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;-- 插入测试数据
INSERT INTO sys_dept (id, dept_name, parent_id, sort) VALUES
(1, '集团公司', 0, 1),
(2, '技术部', 1, 1),
(3, '开发组', 2, 1),
(4, '测试组', 2, 2),
(5, '市场部', 1, 2),
(6, '华北分部', 5, 1);

三、代码实现

1. 添加Hutool依赖

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

2. 实体类

/*** * @TableName sys_dept*/
@Data
public class SysDept implements Serializable {/*** 主键*/private Integer id;/*** 部门名称*/private String deptName;/*** 父部门ID*/private Integer parentId;/*** 排序字段*/private Integer sort;private static final long serialVersionUID = 1L;
}

3. Mapper接口

@Mapper
public interface SysDeptMapper {List<SysDept> listAll();
}

4. Service实现


@Service
public class DeptServiceImpl implements DeptService{@Autowiredprivate SysDeptMapper sysDeptMapper;@Overridepublic List<Tree<Integer>> getDeptTree() {// 查询数据库获取原始数据List<SysDept> depts = sysDeptMapper.listAll();// 配置字段映射TreeNodeConfig treeNodeConfig = new TreeNodeConfig();treeNodeConfig.setIdKey("id");treeNodeConfig.setParentIdKey("parentId");treeNodeConfig.setWeightKey("sort"); // 排序字段treeNodeConfig.setChildrenKey("children");// 转换树形结构(根节点parentId为0)List<Tree<Integer>> resultTreeList = TreeUtil.build(depts, 0, treeNodeConfig,(treeNode, tree) -> {tree.setId(treeNode.getId());tree.setParentId(treeNode.getParentId());tree.putExtra("deptName", treeNode.getDeptName());tree.putExtra("sort", treeNode.getSort());});return resultTreeList;}
}

5. Controller

@RestController
@RequestMapping("/dept")
public class DeptController {@Autowiredprivate DeptService deptService;@RequestMapping("/tree")public List<Tree<Integer>> list(){return deptService.getDeptTree();}
}

四、结果示例

请求GET /dept/tree返回:

[{"id": 1,"parentId": 0,"deptName": "集团公司","sort": 1,"children": [{"id": 2,"parentId": 1,"deptName": "技术部","sort": 1,"children": [{"id": 3,"parentId": 2,"deptName": "开发组","sort": 1},{"id": 4,"parentId": 2,"deptName": "测试组","sort": 2}]},{"id": 5,"parentId": 1,"deptName": "市场部","sort": 2,"children": [{"id": 6,"parentId": 5,"deptName": "华北分部","sort": 1}]}]}
]

五、技术要点

1. TreeNodeConfig配置

  • setIdKey(): 指定ID字段名
  • setParentIdKey(): 指定父ID字段名
  • setChildrenKey(): 指定子节点集合字段名
  • setWeightKey(): 指定排序字段
  • putExtra():添加额外字段

参考:
https://doc.hutool.cn/pages/TreeUtil/

http://www.dtcms.com/wzjs/552504.html

相关文章:

  • 平台网站应该怎样做seo用KEGG网站做KEGG富集分析
  • 哪里有网站制作服务移动网站是什么意思
  • 常州网站建设思创网络汽车之家官网入口
  • 淮北市网站制作公司临漳专业做网站
  • 东莞网站建设知名公司排名泗阳县住房和建设局网站
  • 微信平台与微网站开发网站公司后台
  • 网站制作文章ui设计师资格证
  • 襄阳高新区建设局网站wordpress的阅读量
  • 国外扁平化风格网站整站优化seo
  • 301重定向手机网站产品vi设计哪家好
  • 网站上传视频怎么做闵行交大附近网站建设
  • 你注册过哪些网站wap平台
  • 个人网站免费建站网站建设的具体方法
  • 如何构建一个网站软件开发公司介绍怎么写
  • 做点阵纸的网站seo教学平台
  • 创建网站的向导和模板 信息技术教资面试怎样给网站做app
  • 丹阳官方网站建站深圳教育平台网站建设
  • 35个好的网站设计wordpress广告弹窗插件
  • 移动开发专业seo网站排名查询
  • 网站挂黑链赚钱小程序登录页面
  • 深圳网站建设 联雅网络网站关键词排名服务
  • 海口企业网站建设龙岩网站建设要多少费用
  • 一个网站不兼容ie怎么做百度网站地图生成
  • psd网站dw如何做网站后台
  • 苏州网站建设kgwl网站集成微信登录
  • 成都网站建设推广港哥网站你应该知道我说的是什么吧
  • 营销手机网站版面室内设计培训班排行榜学校
  • 就业合同模板排名优化公司电话
  • 网络知识网站郑州集团网站建设哪家好
  • 手机网站如何推广市北区开发建设局 网站