数据库
和菜单相关的数据库

以上是我们保存菜单的表,以后就可以在这个表里面添加菜单
查询出数据
如果用户是管理员,需要将全部的菜单查询出来,我们可以写一个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)
{

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





