直接跳到2查看代码
Hutool官网:https://hutool.cn/docs/#/
1.引入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.11</version>
</dependency>
我使用的hutool版本是5.4.1
数据库为
*普通查询(这里就简单查询全部,不分页什么的了),这里是没有使用sort排序字段的查询
普通的列表查询样式如下 | 递归查询如下 |
---|---|
2.代码
//查询全部
List<UserTest> list = userTestMapper.selectAll();
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("sort"); //权重排序字段 默认为weight
treeNodeConfig.setIdKey("id"); //主键 默认为id
treeNodeConfig.setNameKey("name"); //名称 默认为name
treeNodeConfig.setParentIdKey("parentId"); //父节点 默认为parentId
// treeNodeConfig.setChildrenKey("children"); //子点 默认为children
treeNodeConfig.setDeep(3); //最大递归深度 默认此配置为空,不限制(从0开始)
//转换器, 0表示最顶层的id是0
List<Tree<String>> treeNodes = TreeUtil.build(list, "0", treeNodeConfig,
(treeNode, tree) -> {
tree.setId(Convert.toStr(treeNode.getId()));
tree.setParentId(Convert.toStr(treeNode.getParentId()));
tree.setWeight(treeNode.getSort());
tree.setName(treeNode.getName());
// 扩展属性 ...
tree.putExtra("other", treeNode.getOther());
tree.putExtra("time", treeNode.getTime());
});