MyBatis之多表查询

简介: MyBatis之多表查询

首先先谈谈resultTyperesultMap,其中resultType是一种返回类型,绝⼤数查询场景可以使⽤ resultType 进行返回,它的优点是使用方便,直接定义到某个实体类,如下代码所示:


而resultMap是返回字典映射,它的使用场景是:数据库中的字段名称和程序中的属性名不相同的情况,在多表查询中的一对一和一对多关系可以使用resultMap映射并查询数据。

在多表查询时,如果使⽤ resultType 标签,在⼀个类中包含了另⼀个对象是查询不出来被包含的对象的,⽐如以下实体类:


一对一映射

⼀对⼀映射要使⽤ <association> 标签,具体实现如下(⼀篇⽂章只对应⼀个作者):


使⽤ <association>标签,表示⼀对⼀的结果映射:

property 属性:指定 Article 中对应的属性,即⽤户。

resultMap 属性:指定关联的结果集映射,将基于该映射配置来组织⽤户数据。


注意:columnPrefix 属性不能省略,如果省略,当两表中如果有相同的字段,那么就会导致查询出错。⽐如两篇⽂章都是⼀个⼈写的,如果没有 columnPrefix 就会导致查询的⽤户 id被⽂章表 id 覆盖,查询出错。使用columnPrefix可以解决多表中相同字段数据覆盖的问题。

一对多映射

⼀对多需要使⽤ <collection> 标签,⽤法和 <association> 相同,如下所示(一个作者对应多篇文章):


caaf9aa0fd5347f983ebfd98922b599f.png


相关文章
|
9月前
|
SQL XML Java
Mybatis:SQL注入问题 like模糊查询 多表查询 动态SQL
Mybatis:SQL注入问题 like模糊查询 多表查询 动态SQL
157 0
|
2月前
|
XML Java 数据库连接
【MyBatis】1、MyBatis 核心配置文件、多表查询、实体映射文件 ......
【MyBatis】1、MyBatis 核心配置文件、多表查询、实体映射文件 ......
103 0
|
2月前
|
SQL Java 数据库连接
Mybatis如何实现多表查询
Mybatis如何实现多表查询
|
9月前
|
XML Java 数据库连接
“MyBatis中的关联关系配置与多表查询“
“MyBatis中的关联关系配置与多表查询“
34 0
|
10月前
|
SQL XML Java
Mybatis的多表查询操作 2
Mybatis的多表查询操作
67 1
|
10月前
|
XML Java 数据库连接
Mybatis的多表查询操作 1
Mybatis的多表查询操作
49 1
|
11月前
|
SQL Java 数据库连接
|
12月前
|
SQL Java 数据库连接
Mybatis如何实现多表查询?
MyBatis是一个Java持久层框架,它提供了多种方式来实现多表查询。
772 0
|
SQL XML Java
如何在 MyBatis 中进行多表查询以及注解开发?
如何在 MyBatis 中进行多表查询以及注解开发?
272 0
|
SQL Java 数据库连接
Mybatis多表查询之一对多、多对一
Mybatis多表查询之一对多、多对一
114 0