Java课题笔记~ 关联映射

一、MyBatis关联查询

在关系型数据库中,表与表之间存在着3种关联映射关系,分别为一对一、一对多、多对多。

一对一:一个数据表中的一条记录最多可以与另一个数据表中的一条记录相关。列如学生与学号就属于一对一关系。

一对多:主键数据表中的一条记录可以与另外一个数据表任意数量的记录相关,另外一个数据表中的一条记录只能与主键数据表中的某一条记录相关。列如班级与学生就属于一对多关系。

多对多:一个数据表中的一条记录可以与另外一个数据表任意数量的记录相关,另外一个数据表中的一条记录也可以与本数据表中任意数量的记录相关。列如学生和老师就属于多对多关系。

1、MyBatis一对一关联查询

在MyBatis中,通过<association>元素来处理一对一关联关系。

<association>元素提供了一系列属性用于维护数据表之间的关系。

<association>元素中的属性如下表所示:

**注意:**接口文件的路径和配制映射文件的路径不一样,详情见下图:

< association>元素的示例配置如下:

java 复制代码
 < !- - 方式一:嵌套查询-->
< association property="card" column="card_id" javaType="com.Jorya.model.StudentIdCard"
	select="com.Jorya.mapper.StudentIdCardMapper.findCodeById"/>

<!-- 方式二: 嵌套结果-->
<association property="card" javaType="com.Jorya.Model.StudentIdCard">
	<id property="id" column="card_id"/>
	<result property="code" column="code"/>
</association>

2、MyBatis一对多关联查询

MyBatis中有一个< resultMap>元素,其中包含了一个< collection>子元素,MyBatis通过这个子元素来处理一对多联系。

< collection>子元素的属性大部分与< association>元素相同,其中包含了一个特殊元素------ofType,ofType与javaType对应,用于指定实体对象中集合类属性所包含的元素类型。

< collection>元素的示例配置如下:

java 复制代码
<!--嵌套查询>
<collection property="ordersList" column="id"
	ofType="con.itheima.po.Orders"
	select="com.itheima.mapper.OrderMapper.selectOrders"/>
<!--嵌套结果-->
<collection property="orderList" ofType="com.itheima.po.Orders'>
	<id property="id" column="orders_id"/>
	<result property="number' column="number"/>
</collection>

3、MyBatis多对多关联查询

通过resultMap的collection元素实现;

<collection />是mybatis处理多对多关系的,是指拿到一个集合,property="listRight"的内容是对应你model层表中表示多对多关系的属性名

fetchType表示是懒加载还是立刻加载;

select表示是选择关联关系的哪个方法获取数据 ;

column表示传到映射关系的列的值

相关推荐
考虑考虑1 小时前
Jpa使用union all
java·spring boot·后端
用户3721574261352 小时前
Java 实现 Excel 与 TXT 文本高效互转
java
浮游本尊3 小时前
Java学习第22天 - 云原生与容器化
java
渣哥4 小时前
原来 Java 里线程安全集合有这么多种
java
间彧5 小时前
Spring Boot集成Spring Security完整指南
java
间彧5 小时前
Spring Secutiy基本原理及工作流程
java
Java水解6 小时前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆8 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学8 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole9 小时前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端