Mybatis多表查询时【多对一】的学习,关于association的理解

在理解多对一时,先要理解association在mybatis映射文件中的作用,以下是官方文档的说明:Mybatis多表查询时【多对一】的学习,关于association的理解

简单来说assocation是关联,代表多对一,理解的关键在于这个【一】,说明最后得到的应该是一个对象类型的结果。

assocation → 多对一

实现代码:用员工表与部门表的形式举例(员工表的depID连接部门表的ID)

员工表:

Mybatis多表查询时【多对一】的学习,关于association的理解

部门表:Mybatis多表查询时【多对一】的学习,关于association的理解

① 多对一的实现(按结果嵌套查询):

首先创建部门表的实体类
Mybatis多表查询时【多对一】的学习,关于association的理解
创建员工表的实体类
Mybatis多表查询时【多对一】的学习,关于association的理解
我们通过面向接口编程,将Mybatis的映射文件绑定在接口empMapper上(xml映射文件的注册就不展示了,默认你们都会^ ^)
Mybatis多表查询时【多对一】的学习,关于association的理解
配置empMapper.xmlMybatis多表查询时【多对一】的学习,关于association的理解

我们先通过外连接的sql语句获取出我们想要获取的字段值,将获取到的字段值通过resultMap结果映射到实体类的字段上。重点在于我们无法通过<result>标签直接给对象类型的字段赋值,所以使用<association>标签字段为dep对象赋值

测试类:
Mybatis多表查询时【多对一】的学习,关于association的理解
结果:Mybatis多表查询时【多对一】的学习,关于association的理解