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从数据库读取菜单,递归生成菜单树
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
