栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis如何实现多表查询(一对一、一对多)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis如何实现多表查询(一对一、一对多)

        盆友们,今天我们来探讨探讨MyBatis实现一对一、一对多关联查询的方式。

        就用学生和班级之间的关系来举例说明,一个学生只能有一个班级,属于一对一的关系,一个班级可以有多个学生,属于一对多的关系,当我们想要知道一个学生的班级信息或者一个班级的学生信息时,在庞杂的数据面前我们很难迅速高效的去获取到准确数据,于是乎MyBatis就给我们解决了这个问题,下面我们就一起来看看MyBatis是怎样帮助我们实现的。

首先,我们需要两张表:学生表(student)、班级表(class)

现在我们有两个需求

1、查询某个学生,包括他的班级信息

2、查询某个班级的所有学生信息

首先,创建实体类 Student 和 Banji 

 

 

其次,创建各自的 Mapper 接口

 

 

然后我们就可以采取两种方式去查询

第一种:sqlMapper 配置文件

需要注意的一点是 resultMap 标签里的 id 属性必须是唯一的,即下面 select 标签里 resultMap

的值必须和 resultMap 标签里的 id 值一致。还有一点,select 标签里 id 属性的值必须和对应Mapper 接口中对应方法的方法名一致且是唯一的。

 接下来我们直接去做测试类,进行需求实现,这里我们直接来看实现效果。

查询某个学生,包括他的班级信息

 查询某个班级的所有学生信息

 第二种:注解

该方式需要我们在 Mapper 接口中写相对应的注解去做映射。

 需求实现效果同上一种方法没有差别。

最后,对两种方法加以总结:

方式一:使用sqlMapper配置文件

                一对一:在resultMap标签中使用 assocation标签

                一对多:在resultMap标签中使用 collection 标签

方式二:使用注解

                一对一:在 @Results 注解中的 @Result 注解中使用 @One 注解

                一对多:在 @Resus 注解中的 @Result 注解中使用 @Many 注解

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/991410.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号