Java课题笔记~ 关联映射

一、MyBatis关联查询

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

Java课题笔记~ 关联映射_第1张图片

 

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

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

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

1、MyBatis一对一关联查询

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

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

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

Java课题笔记~ 关联映射_第2张图片

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

 

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

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



	
	

2、MyBatis一对多关联查询

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

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



	

3、MyBatis多对多关联查询

通过resultMap的collection元素实现;

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

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

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

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

你可能感兴趣的:(Java,java,笔记,mybatis,MyBatis映射文件,关联查询)