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

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

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

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

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

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

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

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

测试核心代码:

测试结果:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容