java若依框架学习(一)菜单保存到数据库,根据不同的权限拿出不同的菜单

这篇博客主要介绍了如何从数据库中查询菜单数据,并处理成具有子父级关系的结构,以便于前端展示。首先,通过SQL查询出所有可见的菜单,然后使用Java代码遍历并构建菜单的层级结构,通过递归方法将每个菜单的子菜单添加到其属性中,最终形成完整的树形结构返回给前端。

数据库

和菜单相关的数据库

在这里插入图片描述
以上是我们保存菜单的表,以后就可以在这个表里面添加菜单

查询出数据

如果用户是管理员,需要将全部的菜单查询出来,我们可以写一个sql,查询出全部的菜单

<select id="selectMenuNormalAll" resultMap="SysMenuResult">
		select distinct m.menu_id, m.parent_id, m.menu_name, m.url, m.visible, m.is_refresh, ifnull(m.perms,'') as perms, m.target, m.menu_type, m.icon, m.order_num, m.create_time
		from sys_menu m
		查询出菜单的类型是目录,菜单的,而且菜单状态是可见的
		where m.menu_type in ('M', 'C') and m.visible = 0
		order by m.parent_id, m.order_num
	</select>

以上是全部的菜单都查询出来了,我们还需要根据父子级,进行处理一下数据,将处理之后的数据再返回给前段。

处理查询出的数据,整理为子父级关系后返回

先将父id为0的菜单整理出来,

getChildPerms(menus, 0)   第一个参数是查询出的菜单的集合,第二个参数是父id,
    /**
     * 根据父节点的ID获取所有子节点
     * 
     * @param list 分类表
     * @param parentId 传入的父节点ID
     * @return String
     */
    public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId)
    {
   
   
    
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一写代码就开心

你的打赏将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值