Mybatis自查询递归查找子菜单
来源:互联网 发布:网盘搜索引擎 知乎 编辑:程序博客网 时间:2024/05/19 04:03
之前写过 java从数据库读取菜单,递归生成菜单树
今天才发现mybatis也可以递归查询子菜单
先看一下数据库
主键id,名称name,父id,和url
设计菜单类
public class Menu { // 菜单id private String id; // 父菜单id private String parentId; // 菜单名称 private String name; // 菜单url private String url; // 子菜单 private List<Menu> children; // 省去getter setter和toString方法}
menuDao
public interface MenuDao { /** * 递归查找所有 * * @return */ public List<Menu> findAllRecursion();}
mapper.xml
<resultMap type="Menu" id="recursionMenuMap"> <id column="id" property="id"/> <result column="name" property="name"/> <collection property="children" ofType="Menu" column="id" select="findMenuByParentId"/> </resultMap> <select id="findAllRecursion" resultMap="recursionMenuMap"> SELECT id,`name`,parent_id,url FROM menu WHERE parent_id ='' or parent_id is NULL ORDER BY `order` ASC </select> <select id="findMenuByParentId" resultType="Menu"> SELECT id,`name`,parent_id,url FROM menu WHERE parent_id = #{id} ORDER BY `order` ASC </select>
其中findAllRecursion会查询到所有的父菜单,
因为我们定义的
<select id="findAllRecursion" resultMap="recursionMenuMap">
而在recursionMenuMap中我们定义了如何去查找子菜单,调用findMenuByParentId
阅读全文
1 0
- Mybatis自查询递归查找子菜单
- LigurUi + spring mybatis mysql 菜单递归查询
- MyBatis之自查询,使用 递归实现 N级联
- SQL 语句递归查询 With AS 查找 所有 子节点
- SQL 语句递归查询 With AS 查找所有子节点
- 递归查找子窗口
- mybatis递归查询笔记
- mybatis+mysql递归查询
- MyBatis--关联关系查询--自关联--一对多--查询指定父节点的所有子节点
- MyBatis--关联关系查询--自关联--一对多--查询指定父节点及其所有子
- (递归查询)关于oracle树结构查询 展示 分组,查找父节点,查找子节点问题
- 递归函数查询菜单列表
- ORACLE 递归查询 菜单树
- MyBatis之自查询使用递归实现 N级联动效果(两种实现方式)
- sql递归查询子节点
- mysql递归查询子节点
- 递归查询所有子级
- ofbiz自关联子查询
- 自定义View
- Kotlin简单开发-RecyclerView
- 禁止浏览器缓存input值
- 游标概述
- BZOJ4897 [Thu Summer Camp2016]成绩单
- Mybatis自查询递归查找子菜单
- eclipse默认指向 WebContent 目录 修改为 webRoot
- Docker网络配置(一)
- spark mllib源码分析之随机森林(Random Forest)(四)
- Hibernate笔记(一)
- 运算符重载参数的顺序对运算是否有影响
- JavaScript RegExp.$1...$9 属性详解
- Mysql创建、删除用户
- bitmap与file之间转换使用