Mybatis自查询递归查找子菜单

之前写过 java从数据库读取菜单,递归生成菜单树

今天才发现mybatis也可以递归查询子菜单

先看一下数据库

这里写图片描述

主键id,名称name,父id,和url

设计菜单类

public class Menu {// 菜单idprivate String id;// 父菜单idprivate String parentId;// 菜单名称private String name;// 菜单urlprivate String url;// 子菜单private List<Menu> children;// 省去getter setter和toString方法
}

menuDao

public interface MenuDao {/*** 递归查找所有* * @return*/public List<Menu> findAllRecursion();
}

mapper.xml

最新的,可以无穷遍历

    <resultMap type="Menu" id="menuTree"><id column="id" property="id"/><result column="parent_id" property="parentId"/><result column="name" property="name"/><result column="url" property="url"/><collection property="children" ofType="Menu" column="id" select="getMenuChildren"/>resultMap><select id="findAllRecursion" resultMap="menuTree">SELECT*FROMmenu WHEREparent_id IS NULLselect><select id="getMenuChildren" resultMap="menuTree">SELECT*FROMmenu WHEREparent_id= #{id}select>

这里写图片描述
Tip:最近发现通过mybatis递归查找子菜单如果菜单比较多会非常耗时,可以通过mybatis一次性把所有菜单查找出来,再通过程序构建菜单树
构建菜单树的文章地址
java从数据库读取菜单,递归生成菜单树


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部