博为峰JavaEE技术文章 ——MyBatis 递归查询

    

做项目时,我们往往要用树形结构来表示某些数据之间的关联关系,如行政部门、菜单、行政区域等等。这些树状结构往往需要在数据库中持久化。在进行树形结构表设计时,一般会把父子关系的数据放在一张表中,并添加一个字段,指向父亲节点。如下所示的行政区域表:


那么如何在Mybatis中对这种树形关系表进行查询呢?今天小博老师就给大家介绍下如何在Mybatis中实现对树形关系表的递归查询

首先建立与属性表对应的Java Bean Area.java,源码如下:

 

childList属性存放当前Area对象的所有子节点的集合。

根据JavaBean的关系设置,我们再来设计Mapper XML的映射:

 

我们使用了collection元素的select属性,根据当前Area的Id查询Area的所辖区域列表。查询语句findAreaByparentId中,把传入的Area id当做parent id,把所有下属区域全部查询出来。

Mapper接口文件定义就很简单了:

 

测试核心代码:

 

测试结果:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值