大佬教程收集整理的这篇文章主要介绍了springboot 整合 mybatis plus -- 树状图,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
先根据 springboot 整合 mybatis plus 这篇生成各种文件
controller:
package com.lifan.controller; import com.lifan.service.AcUserTreeservice; import com.lifan.vo.AcUserVo; import org.springframework.beans.factory.Annotation.Autowired; import org.springframework.web.bind.Annotation.PostMapping; import org.springframework.web.bind.Annotation.RestController; import java.util.List; /** * <p> * 前端控制器 * </p> * * @author lifan * @since 2021-07-09 */ @RestController public class AcUserTreeController { @Autowired private AcUserTreeservice acUserTreeservice; @PostMapping("/treeQuery") public List<AcUserVo> SspFxProQuery() { List<AcUserVo> fxCompanyVos = acUserTreeservice.formulaClothClassGetTree(); return fxCompanyVos; } }
service:
package com.lifan.service; import com.lifan.vo.AcUserVo; import java.util.List; /** * <p> * 服务类 * </p> * * @author lifan * @since 2021-07-09 */ public interface AcUserTreeservice { List<AcUserVo> formulaClothClassGetTree(); }
AcUserTreeserviceImpl :
package com.lifan.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.lifan.entity.AcUserTree; import com.lifan.mapper.AcUserTreeMapper; import com.lifan.service.AcUserTreeservice; import com.lifan.vo.AcUserVo; import org.springframework.beans.beanUtils; import org.springframework.beans.factory.Annotation.Autowired; import org.springframework.stereotype.service; import java.util.ArrayList; import java.util.List; /** * <p> * 服务实现类 * </p> * * @author lifan * @since 2021-07-09 */ @service public class AcUserTreeserviceImpl implements AcUserTreeservice { @Autowired private AcUserTreeMapper acUserTreeMapper; public List<AcUserVo> formulaClothClassGetTree() { QueryWrapper queryWrapper = new QueryWrapper(); //只查询 启用状态的 // queryWrapper.eq("`show`",'Y'); List<AcUserTree> list = acUserTreeMapper.SELEctList(queryWrapper); List<AcUserVo> list1 = new ArrayList(); for(AcUserTree sspFxCompany : list){ AcUserVo fxCompanyVos = new AcUserVo(); if(sspFxCompany.getPid().equals("1")){ BeanUtils.copyProperties(sspFxCompany, fxCompanyVos); fxCompanyVos.setChildren(formulaClothClassNextTree(list,(sspFxCompany.getId()))); list1.add(fxCompanyVos); } } return list1; } public List<AcUserVo> formulaClothClassNextTree(List<AcUserTree> list, Long formulaClothClassId) { List<AcUserVo> list1 = new ArrayList(); for(AcUserTree sspFxCompany : list){ AcUserVo fxCompanyVos = new AcUserVo(); if(sspFxCompany.getPid().equals(formulaClothClassId.toString())){ BeanUtils.copyProperties(sspFxCompany, fxCompanyVos); fxCompanyVos.setChildren(formulaClothClassNextTree1(list,sspFxCompany.getId())); list1.add(fxCompanyVos); } } return list1; } public List<AcUserVo> formulaClothClassNextTree1(List<AcUserTree> list, Long formulaClothClassId) { List<AcUserVo> list1 = new ArrayList(); for(AcUserTree sspFxCompany : list){ AcUserVo fxCompanyVos = new AcUserVo(); if(sspFxCompany.getPid().equals(formulaClothClassId.toString())){ BeanUtils.copyProperties(sspFxCompany, fxCompanyVos); fxCompanyVos.setChildren(formulaClothClassNextTree1(list,sspFxCompany.getId())); list1.add(fxCompanyVos); } } return list1; } }
实体类:
package com.lifan.entity; import com.baomidou.mybatisplus.Annotation.IdType; import com.baomidou.mybatisplus.Annotation.TableField; import com.baomidou.mybatisplus.Annotation.TablEID; import java.io.serializable; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * * @author lifan * @since 2021-07-09 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) public class AcUserTree implements serializable { private static final long serialVersionUID = 1L; @TablEID(value = "id", type = IdType.ID_WORKER_STR) private Long id; private String name; private String pid; //show 是数据库关键字,起个别名 @TableField("`show`") private String show; }
接受请求类:
package com.lifan.request; import lombok.Data; /** * * @author lifan * @since 2021-07-09 */ @Data public class AcUserTreeReq { private Long id; private String name; private String pid; private String show; }
响应扩展类:
package com.lifan.vo; import lombok.Data; import java.util.List; /** * * @author lifan * @since 2021-07-09 */ @Data public class AcUserVo { private Long id; private String name; private String pid; private String show; private List<AcUserVo> children; }
@H_846_0@mapper 接口:
package com.lifan.mapper; import com.lifan.entity.AcUserTree; import com.baomidou.mybatisplus.core.mapper.baseMapper; import org.apache.ibatis.Annotations.Mapper; /** * <p> * Mapper 接口 * </p> * * @author lifan * @since 2021-07-09 */ @mapper public interface AcUserTreeMapper extends BaseMapper<AcUserTree> { }
@H_846_0@mapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <@H_620_576@mapper namespace="com.lifan.mapper.AcUserTreeMapper"> </@H_620_576@mapper>
测试:
数据库:
pid为1 是一级结构,一级结构的id对应二级结构的pid, 下表最多的是5级
SQL :
/*
Navicat Premium Data Transfer
source Server : localhost
source Server Type : MySQL
source Server Version : 80023
source Host : localhost:3306
source scheR_762_11845@a : ac-new
Target Server Type : MySQL
Target Server Version : 80023
File Encoding : 65001
Date: 09/07/2021 18:46:34
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_checKS = 0;
-- ----------------------------
-- Table structure for ac_user_tree
-- ----------------------------
drop table IF EXISTS `ac_user_tree`;
create table `ac_user_tree` (
`id` bigint(0) NOT NULL,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`pid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`show` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of ac_user_tree
-- ----------------------------
INSERT INTO `ac_user_tree` VALUES (1001, 'li', '1', 'Y');
INSERT INTO `ac_user_tree` VALUES (1002, 'wang', '1', 'Y');
INSERT INTO `ac_user_tree` VALUES (1003, 'zhao', '1', 'Y');
INSERT INTO `ac_user_tree` VALUES (1004, 'li-1', '1001', 'Y');
INSERT INTO `ac_user_tree` VALUES (1005, 'wang-1', '1002', 'Y');
INSERT INTO `ac_user_tree` VALUES (1006, 'wang-2', '1002', 'Y');
INSERT INTO `ac_user_tree` VALUES (1007, 'wang-3', '1002', 'Y');
INSERT INTO `ac_user_tree` VALUES (1008, 'zhao-1', '1003', 'Y');
INSERT INTO `ac_user_tree` VALUES (1009, 'zhao-2', '1003', 'Y');
INSERT INTO `ac_user_tree` VALUES (1010, 'li-1-1', '1004', 'Y');
INSERT INTO `ac_user_tree` VALUES (1011, 'li-1-2', '1004', 'Y');
INSERT INTO `ac_user_tree` VALUES (1012, 'li-1-1-1', '1010', 'Y');
INSERT INTO `ac_user_tree` VALUES (1013, 'li-1-1-2', '1010', 'Y');
INSERT INTO `ac_user_tree` VALUES (1014, 'li-1-1-3', '1010', 'Y');
INSERT INTO `ac_user_tree` VALUES (1015, 'li-1-2-1', '1011', 'Y');
INSERT INTO `ac_user_tree` VALUES (1016, 'li-1-2-2', '1011', 'Y');
INSERT INTO `ac_user_tree` VALUES (1017, 'li-1-2-3', '1011', 'Y');
INSERT INTO `ac_user_tree` VALUES (1018, 'wang-1-1', '1005', 'Y');
INSERT INTO `ac_user_tree` VALUES (1019, 'wang-1-2', '1005', 'Y');
INSERT INTO `ac_user_tree` VALUES (1020, 'wang-1-1-1', '1018', 'Y');
INSERT INTO `ac_user_tree` VALUES (1021, 'li-1-1-1-1', '1012', 'Y');
INSERT INTO `ac_user_tree` VALUES (1022, 'li-1-1-1-2', '1012', 'Y');
SET FOREIGN_KEY_checKS = 1;
以上是大佬教程为你收集整理的springboot 整合 mybatis plus -- 树状图全部内容,希望文章能够帮你解决springboot 整合 mybatis plus -- 树状图所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。