返回顶部
首页 > 资讯 > 精选 >Spring Boot + Mybatis Plus怎么实现树状菜单
  • 507
分享到

Spring Boot + Mybatis Plus怎么实现树状菜单

2023-06-25 22:06:14 507人浏览 薄情痞子
摘要

本篇内容介绍了“spring Boot + mybatis Plus怎么实现树状菜单”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希

本篇内容介绍了“spring Boot + mybatis Plus怎么实现树状菜单”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、实体类中添加子菜单列表或集合

Spring Boot + Mybatis Plus怎么实现树状菜单

 @TableField(exist = false)    private Set<SysMenu> childrenList = new HashSet<>();

2、定义一个方法递归的获取子菜单

public SysMenu getChildrenList(SysMenu sysMenu, List<SysMenu> sysMenuList) {        for (SysMenu menu : sysMenuList) {            if (menu.getMenuParentId().equals(sysMenu.getId())) {                sysMenu.getChildrenList().add(getChildrenList(menu, sysMenuList));            }        }        return sysMenu;    }

3、构建菜单树

 public List<SysMenu> menuTree() {        //获取所有菜单        List<SysMenu> sysMenuList = list(new LambdaQueryWrapper<SysMenu>()                //::在java8中的作用就是获得方法                .eq(SysMenu::getMenuType, ResultConstant.MENU)        );        //stream().filter()作用:过滤一个List对象,查找符合条件的对象集合        List<SysMenu> firstMenuList = sysMenuList.stream().filter                //过滤出一级菜单                (s -> s.getMenuParentId().equals(ResultConstant.MENU_TOP))                // 返回list集合形式                .collect(Collectors.toList());        // 遍历一级菜单,构造菜单树        for (SysMenu menu : firstMenuList) {            getChildrenList(menu, sysMenuList);        }        return firstMenuList;    }

Spring Boot + Mybatis Plus怎么实现树状菜单
Spring Boot + Mybatis Plus怎么实现树状菜单

菜单表如下

Spring Boot + Mybatis Plus怎么实现树状菜单

CREATE TABLE `sys_menu` (  `id` bigint(20) NOT NULL AUTO_INCREMENT,  `menu_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '资源名称',  `menu_permission` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '权限',  `menu_path` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '对应url',  `menu_parent_id` bigint(20) DEFAULT NULL COMMENT '父节点id',  `menu_type` int(11) DEFAULT NULL COMMENT '菜单类型0菜单,1栏目类型',  `order_num` int(11) DEFAULT NULL COMMENT '排序字段:值越小 顺序越靠前',  `create_time` datetime DEFAULT NULL COMMENT '创建时间',  `update_time` datetime DEFAULT NULL COMMENT '最后更新时间',  PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='菜单表';-- ------------------------------ Records of sys_menu-- ----------------------------INSERT INTO `sys_menu` VALUES ('1', '菜单树', 'homePage:menuTree', '', '0', '0', '1', '2021-09-17 12:46:11', '2021-09-17 12:46:11');INSERT INTO `sys_menu` VALUES ('2', '登录模块', null, null, '0', '0', '2', null, null);INSERT INTO `sys_menu` VALUES ('3', '登录', null, '/login', '2', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('4', '修改密码', null, '/login/updatePassWord', '2', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('5', '修改个人信息', null, '/login/updateMessage', '2', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('6', '忘记密码', 'login:forgetPassword', '/login/forgetPassword', '2', '1', '4', null, null);INSERT INTO `sys_menu` VALUES ('7', '消息通知管理', null, null, '0', '0', '3', null, null);INSERT INTO `sys_menu` VALUES ('8', '发布通知', 'notice:insert', '/notice/insert', '7', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('9', '修改通知', 'notice:update', '/notice/update', '7', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('10', '删除通知', 'notice:delete', '/notice/delete', '7', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('11', '查看所有通知', 'notice:listAll', '/notice/listAll', '7', '1', '4', null, null);INSERT INTO `sys_menu` VALUES ('12', '查看本人已发布通知', 'notice:noticeList', '/notice/noticeList', '7', '1', '5', null, null);INSERT INTO `sys_menu` VALUES ('13', '查看所有已发布通知', 'notice:releasedNotice', '/notice/releasedNotice', '7', '1', '6', null, null);INSERT INTO `sys_menu` VALUES ('14', '系统管理', null, null, '0', '0', '4', null, null);INSERT INTO `sys_menu` VALUES ('15', '用户管理', null, null, '14', '0', '1', null, null);INSERT INTO `sys_menu` VALUES ('16', '添加用户', 'user:insert', '/user/insert', '15', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('17', '修改用户信息', 'user:update', '/user/update', '15', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('18', '删除用户信息', 'user:delete', '/user/delete', '15', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('19', '查看所有用户信息', 'user:listAll', '/user/listAll', '15', '1', '4', null, null);INSERT INTO `sys_menu` VALUES ('20', '分配用户角色', 'user:setRole', '/user/setRole', '15', '1', '5', null, null);INSERT INTO `sys_menu` VALUES ('21', '角色管理', null, null, '14', '0', '2', null, null);INSERT INTO `sys_menu` VALUES ('22', '添加角色', 'role:insert', '/role/insert', '21', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('23', '修改角色信息', 'role:update', '/role/update', '21', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('24', '删除角色', 'role:delete', '/role/delete', '21', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('25', '查看所有角色', 'role:listAll', 'role:listAll', '21', '1', '4', null, null);INSERT INTO `sys_menu` VALUES ('26', '设置角色权限', 'role:setMenu', '/role/setMenu', '21', '1', '5', null, null);INSERT INTO `sys_menu` VALUES ('27', '查看自己是否各个拥有角色', 'role:myRole', '/role/myRole', '21', '1', '6', null, null);INSERT INTO `sys_menu` VALUES ('28', '权限管理', null, null, '14', '0', '3', null, null);INSERT INTO `sys_menu` VALUES ('29', '添加权限', 'menu:insert', '/menu/insert', '28', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('30', '修改权限', 'menu:update', '/menu/update', '28', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('31', '删除权限', 'menu:delete', '/menu/delete', '28', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('32', '查看所有权限', 'menu:listAll', '/menu/listAll', '28', '1', '4', null, null);INSERT INTO `sys_menu` VALUES ('33', '登录日志', '', '', '14', '0', '4', null, null);INSERT INTO `sys_menu` VALUES ('34', '操作日志', '', '', '14', '0', '5', null, null);INSERT INTO `sys_menu` VALUES ('35', '信息管理', null, null, '0', '0', '5', null, null);INSERT INTO `sys_menu` VALUES ('36', '查看所有学生信息', 'student:listAll', '/student/listAll', '35', '0', '1', null, null);INSERT INTO `sys_menu` VALUES ('37', '查看所有教师信息', 'teacher:listAll', '/teacher/listAll', '35', '0', '2', null, null);INSERT INTO `sys_menu` VALUES ('38', '班级信息管理', null, null, '35', '0', '3', null, null);INSERT INTO `sys_menu` VALUES ('39', '添加班级', 'class:insert', '/class/insert', '38', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('40', '修改班级信息', 'class:update', '/class/update', '38', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('41', '删除班级', 'class:delete', '/class/delete', '38', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('42', '查看所有班级', 'class:listAll', '/class/listAll', '38', '1', '4', null, null);INSERT INTO `sys_menu` VALUES ('43', '专业管理', null, null, '35', '0', '4', null, null);INSERT INTO `sys_menu` VALUES ('44', '添加专业', 'major:insert', '/major/insert', '43', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('45', '修改专业信息', 'major:update', '/major/update', '43', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('46', '删除专业', 'major:delete', '/major/delete', '43', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('47', '查看所有专业', 'major:listAll', '/major/listAll', '43', '1', '4', null, null);INSERT INTO `sys_menu` VALUES ('48', '学院管理', null, null, '35', '0', '5', null, null);INSERT INTO `sys_menu` VALUES ('49', '添加学院', 'institute:insert', '/institute/insert', '48', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('50', '修改学院信息', 'institute:update', '/institute/update', '48', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('51', '删除学院', 'institute:delete', '/institute/delete', '48', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('52', '查看所有学院', 'institute:listAll', '/institute/listAll', '48', '1', '4', null, null);INSERT INTO `sys_menu` VALUES ('53', '上课管理', null, null, '0', '0', '6', null, null);INSERT INTO `sys_menu` VALUES ('54', '课程表', null, null, '53', '0', '1', null, null);INSERT INTO `sys_menu` VALUES ('55', '添加课程', 'lesson:insert', '/lesson/insert', '54', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('56', '修改课程', 'lesson:update', '/lesson/update', '54', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('57', '删除课程', 'lesson:delete', '/lesson/delete', '54', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('58', '查看所有课程', 'lesson:listAll', '/lesson/listAll', '54', '1', '4', null, null);INSERT INTO `sys_menu` VALUES ('59', '考勤管理', null, null, '53', '0', '2', null, null);INSERT INTO `sys_menu` VALUES ('60', '教师发放签到', 'lesson:startCourse', '/lesson/startCourse', '59', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('61', '学生签到', 'attendance:studentSignIn', '/attendance/studentSignIn', '59', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('62', '查看考勤信息', 'attendance:listAll', '/attendance/listAll', '59', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('63', '请假管理', null, null, '0', '0', '7', null, null);INSERT INTO `sys_menu` VALUES ('64', '学生请假', 'leave:studentLeave', '/leave/studentLeave', '63', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('65', '修改请假信息', 'leave:studentUpdate', '/leave/studentUpdate', '63', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('66', '删除请假', 'leave:studentDelete', '/leave/studentDelete', '63', '1', '3', null, null);INSERT INTO `sys_menu` VALUES ('67', '查看所有请假信息', 'leave:listAll', '/leave/listAll', '63', '1', '4', null, null);INSERT INTO `sys_menu` VALUES ('68', '请假审批', 'leave:approval', '/leave/approval', '63', '1', '5', null, null);INSERT INTO `sys_menu` VALUES ('69', '查看登录日志', 'loginLog:listAll', '/loginLog/listAll', '33', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('70', '删除登录日志', 'loginLog:delete', '/loginLog/delete', '33', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('71', '查看操作日志', 'operateLog:listAll', '/operateLog/listAll', '34', '1', '1', null, null);INSERT INTO `sys_menu` VALUES ('72', '删除操作日志', 'operateLog:delete', '/operateLog/delete', '34', '1', '2', null, null);INSERT INTO `sys_menu` VALUES ('73', '分配教师班级', 'teacher:assignTeacherClasses', '/teacher/assignTeacherClasses', '38', '1', '5', null, null);INSERT INTO `sys_menu` VALUES ('74', '查看教师是否任教各个班级', 'teacher:myClass', '/teacher/myClass', '38', '1', '6', null, null);

效果如下

Spring Boot + Mybatis Plus怎么实现树状菜单

“Spring Boot + Mybatis Plus怎么实现树状菜单”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Spring Boot + Mybatis Plus怎么实现树状菜单

本文链接: https://lsjlt.com/news/306357.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Spring Boot + Mybatis Plus怎么实现树状菜单
    本篇内容介绍了“Spring Boot + Mybatis Plus怎么实现树状菜单”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希...
    99+
    2023-06-25
  • Spring Boot + Mybatis Plus实现树状菜单的方法
    1、实体类中添加子菜单列表或集合 @TableField(exist = false) private Set<SysMenu> childrenList...
    99+
    2024-04-02
  • mybatis plus如何实现在Spring boot上使用
    mybatis plus如何实现在Spring boot上使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。maven依赖 <dependency> ...
    99+
    2023-05-31
    springboot mybatis
  • Spring boot + mybatis + orcale怎么实现
    这篇文章给大家分享的是有关Spring boot + mybatis + orcale怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。添加 mybatis 查询 orcale 数据库 新建几个必须的包, 结...
    99+
    2023-05-30
    springboot mybatis orcale
  • java中怎么实现树形菜单
    在Java中实现树形菜单可以使用树形数据结构来存储菜单项,然后通过递归的方式来构建树形菜单。 以下是一个简单的示例代码实现树形菜单:...
    99+
    2024-03-13
    java
  • springboot+mybatis plus怎么实现树形结构查询
    本篇内容介绍了“springboot+mybatis plus怎么实现树形结构查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录背景使用...
    99+
    2023-06-20
  • 使用JavaScript怎么构造elementUI树状菜单
    使用JavaScript怎么构造elementUI树状菜单?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。elementUI中自带树状菜单,就是数据结构有点复杂,...
    99+
    2023-06-15
  • SpringBoot mybatis 实现多级树形菜单的示例代码
    一、前言 iview-admin中提供了 v-org-tree 这么一个vue组件可以实现树形菜单,下面小编来提供一下在element-ui中的使用教程(项目见:https://gi...
    99+
    2024-04-02
  • 怎么使用Vue组件tree实现树形菜单
    本篇内容主要讲解“怎么使用Vue组件tree实现树形菜单”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Vue组件tree实现树形菜单”吧!vue 编写的树形菜单,小巧实用,支持vue1....
    99+
    2023-07-04
  • vue怎么实现左侧菜单树形图递归
    这篇文章主要讲解了“vue怎么实现左侧菜单树形图递归”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么实现左侧菜单树形图递归”吧!先说说遇到的坑,由于是子父组件,当时传递使用的是子父组...
    99+
    2023-07-04
  • 怎么使用Vue递归组件实现树形菜单
    本文小编为大家详细介绍“怎么使用Vue递归组件实现树形菜单”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Vue递归组件实现树形菜单”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果如下图,点击后打开二级...
    99+
    2023-07-04
  • Mybatis Plus关联查询怎么实现
    本篇内容介绍了“Mybatis Plus关联查询怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Mybatis-Plus 简介什么是 ...
    99+
    2023-06-22
  • mybatis plus怎么实现动态表名
    Mybatis Plus 可以通过使用 TableNameParser 接口来实现动态表名。你需要自定义一个实现了 TableNameParser 接口的类,并在 Mybatis Plus 的配置中将其注册为自定义的 TableNamePa...
    99+
    2023-09-03
    mybatis java mysql 开发语言 数据库
  • MyBatis-Plus怎么实现多表联查
    这篇文章主要介绍“MyBatis-Plus怎么实现多表联查”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MyBatis-Plus怎么实现多表联查”文章能帮助大家解决问题。建库建表DROP&n...
    99+
    2023-06-29
  • MyBatis-Plus怎么实现逻辑删除
    这篇“MyBatis-Plus怎么实现逻辑删除”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MyBatis-Plus怎么实现...
    99+
    2023-06-30
  • springBoot集成mybatis转换为mybatis-plus怎么实现
    这篇文章主要介绍“springBoot集成mybatis转换为mybatis-plus怎么实现”,在日常操作中,相信很多人在springBoot集成mybatis转换为mybatis-plus怎么实现问题上存在疑惑,小编查阅了各式资料,整理...
    99+
    2023-06-21
  • vue中怎么实现左侧菜单和树形图递归
    本文小编为大家详细介绍“vue中怎么实现左侧菜单和树形图递归”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue中怎么实现左侧菜单和树形图递归”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果图如下所示:先说说...
    99+
    2023-06-20
  • MySQL中怎么实现树状数据
    本篇文章为大家展示了MySQL中怎么实现树状数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。0 树状数据的分类我们在mysql数据库设计的时候,会遇到一种树状的数...
    99+
    2024-04-02
  • Spring Boot中怎么利用JUnit 5实现单元测试
    这篇文章给大家介绍Spring Boot中怎么利用JUnit 5实现单元测试,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. 忽略测试用例执行JUnit 4:@Test  @Ignore ...
    99+
    2023-06-16
  • Spring Boot怎么实现热部署
    Spring Boot怎么实现热部署在Spring Boot实现代码热部署是一件很简单的事情,代码的修改可以自动部署并重新热启动项目。1、引用devtools依赖 org.springframework.boot sprin...
    99+
    2018-02-18
    java教程 spring boot 热部署
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作