最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?Boot?+?Mybatis?Plus實現(xiàn)樹狀菜單的方法

 更新時間:2021年12月11日 10:27:41   作者:dreaming9420  
這篇文章主要介紹了Spring?Boot?+?Mybatis?Plus實現(xiàn)樹狀菜單,包括實體類中添加子菜單列表和集合及構建菜單樹的詳細代碼,代碼簡單易懂,需要的朋友可以參考下

1、實體類中添加子菜單列表或集合

在這里插入圖片描述

 @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;
    }

在這里插入圖片描述
在這里插入圖片描述

菜單表如下

在這里插入圖片描述

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 '父節(jié)點id',
  `menu_type` int(11) DEFAULT NULL COMMENT '菜單類型0菜單,1欄目類型',
  `order_num` int(11) DEFAULT NULL COMMENT '排序字段:值越小 順序越靠前',
  `create_time` datetime DEFAULT NULL COMMENT '創(chuàng)建時間',
  `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', '發(fā)布通知', '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', '查看本人已發(fā)布通知', 'notice:noticeList', '/notice/noticeList', '7', '1', '5', null, null);
INSERT INTO `sys_menu` VALUES ('13', '查看所有已發(fā)布通知', 'notice:releasedNotice', '/notice/releasedNotice', '7', '1', '6', null, null);
INSERT INTO `sys_menu` VALUES ('14', '系統(tǒng)管理', 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', '專業(yè)管理', null, null, '35', '0', '4', null, null);
INSERT INTO `sys_menu` VALUES ('44', '添加專業(yè)', 'major:insert', '/major/insert', '43', '1', '1', null, null);
INSERT INTO `sys_menu` VALUES ('45', '修改專業(yè)信息', 'major:update', '/major/update', '43', '1', '2', null, null);
INSERT INTO `sys_menu` VALUES ('46', '刪除專業(yè)', 'major:delete', '/major/delete', '43', '1', '3', null, null);
INSERT INTO `sys_menu` VALUES ('47', '查看所有專業(yè)', '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', '教師發(fā)放簽到', '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實現(xiàn)樹狀菜單的文章就介紹到這了,更多相關Spring Boot Mybatis Plus樹狀菜單內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java線程同步操作實例詳解

    java線程同步操作實例詳解

    這篇文章主要介紹了java線程同步操作,結合實例形式分析了Java線程同步與鎖機制相關原理、操作技巧與注意事項,需要的朋友可以參考下
    2018-09-09
  • Java SpringBoot 使用攔截器作為權限控制的實現(xiàn)方法

    Java SpringBoot 使用攔截器作為權限控制的實現(xiàn)方法

    這篇文章主要介紹了Java SpringBoot 使用攔截器作為權限控制的實現(xiàn),文中通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • Java Agent 動態(tài)修改字節(jié)碼詳情

    Java Agent 動態(tài)修改字節(jié)碼詳情

    這篇文章主要介紹了Java Agent動態(tài)修改字節(jié)碼的相關資料,需要的朋友可以參考下面文章具體的內(nèi)容
    2021-09-09
  • swagger注解@ApiModelProperty失效情況的解決

    swagger注解@ApiModelProperty失效情況的解決

    這篇文章主要介紹了swagger注解@ApiModelProperty失效情況的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Netty源碼分析NioEventLoop執(zhí)行select操作入口

    Netty源碼分析NioEventLoop執(zhí)行select操作入口

    這篇文章主要介紹了Netty源碼分析NioEventLoop執(zhí)行select操作入口,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • SpringBoot實現(xiàn)excel生成并且通過郵件發(fā)送的步驟詳解

    SpringBoot實現(xiàn)excel生成并且通過郵件發(fā)送的步驟詳解

    實際開發(fā)中,特別是在B端產(chǎn)品的開發(fā)中,我們經(jīng)常會遇到導出excel的功能,更進階一點的需要我們定期生成統(tǒng)計報表,然后通過郵箱發(fā)送給指定的人員,?今天要帶大家來實現(xiàn)的就是excel生成并通過郵件發(fā)送,需要的朋友可以參考下
    2023-10-10
  • IDEA進程已結束,退出代碼-1073741819 (0xC0000005)的bug

    IDEA進程已結束,退出代碼-1073741819 (0xC0000005)的bug

    這篇文章主要介紹了IDEA進程已結束,退出代碼-1073741819 (0xC0000005)的bug,本文通過實例代碼圖文的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Eclipse配置springIDE插件的方法步驟

    Eclipse配置springIDE插件的方法步驟

    本篇文章主要介紹了Eclipse配置springIDE插件的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • SpringBoot實現(xiàn)在webapp下直接訪問html,jsp

    SpringBoot實現(xiàn)在webapp下直接訪問html,jsp

    這篇文章主要介紹了SpringBoot實現(xiàn)在webapp下直接訪問html,jsp問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 淺談mybatis中SQL語句給boolean類型賦值問題

    淺談mybatis中SQL語句給boolean類型賦值問題

    這篇文章主要介紹了淺談mybatis中SQL語句給boolean類型賦值問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論

龙门县| 定陶县| 昂仁县| 通道| 都匀市| 洪雅县| 雷州市| 达尔| 建宁县| 车致| 凯里市| 宝应县| 诸暨市| 乐山市| 宁远县| 招远市| 牟定县| 绥芬河市| 疏勒县| 桂林市| 东兰县| 宝丰县| 新密市| 从化市| 安国市| 五河县| 鄄城县| 确山县| 贡嘎县| 兴海县| 陆良县| 兴义市| 南阳市| 汨罗市| 大渡口区| 叙永县| 东兰县| 周宁县| 巨鹿县| 天柱县| 虞城县|