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

本文详细介绍了如何在MyBatis中实现多表查询,包括通过sqlMapper配置文件的一对一和一对多查询,以及使用注解的方式。以学生表和班级表为例,解释了表间关系分析,并展示了配置实体类、Mapper接口和XML文件的步骤,以及测试结果。

Mybatis实现多表的查询分为以下两种:

方式一:sqlMapper配置文件

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

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

方式二:注解

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

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

        要想实现一对一、一对多的关系,我们需要在编写代码分清楚表的关系,是一对一的关系还是一对多的关系,以下我们将进行举例说明:

        我们将用到学生表(student)和班级表(class),在写之前我们先判断两表之间的关系,以学生表方向来考虑,一个学生肯定是对应一个班级编号的,例如学生甲不可能即使一班的也是二班的所以学生表对班级表就是一对一的关系;我们再从班级表来考虑,一个班级不可能只有一个学生,肯定会有很多的学生,所以班级表对学生表就是一对多的关系,分析表之间的关系后,我们就可以进行代码编写。

        如下所示是两个表:

学生表:

        

 班级表:

        

一、一对一查询sqlMapper配置文件

        1.在上面我们已经分析清楚后知道学生表对班级表是一对一的关系;

        2..创建Student、Banji实体类,在学生表实体类中增加班级表的外部属性(班级对象)如下:

(图中未显示有参、无参、get、set、toString方法)

 

         3.创建StudentMapper接口

         4.配置xml文件

         5.测试结果(部分)

二、一对多查询sqlMapper配置文件

        1.班级表对学生表是一对多的关系;

        2.创建Banji、Student实体类,在班级实体类中写学生表的外部属性;

 

        3.创建BanjiMapper接口

        4.配置xml文件

        5.测试结果

三、一对一查询注解

        1.学生表对班级表是一对一的关系;

        2..创建Student、Banji实体类,在学生表实体类中增加班级表的外部属性(班级对象)如下:

(图中未显示有参、无参、get、set、toString方法)

 

        3.创建StudentMapper接口

        4.创建BanjiMapper接口

        5.测试结果

四、一对多查询注解

        1.班级表对学生表是一对多的关系;

        2.创建Banji、Student实体类,在班级实体类中写学生表的外部属性;

 

        3.创建BanjiMapper接口

        4.创建StudentMapper接口

         5.测试结果

        以上是Mybatis的一对一、一对多的多表查询,希望对大家理解Mybatis的多表查询有所帮助。

请留下你的点赞哦!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值