Mybatis JOIN子句 一对多查询
时间: 2024-10-16 13:19:11 浏览: 18
MyBatis-Plus多表联合查询并且分页(3表联合)
5星 · 资源好评率100%
Mybatis 的 JOIN 子句在一对多查询中用于关联两个表,当一个实体对应另一个实体的集合时,它能帮助我们从数据库中一次性获取相关的数据。例如,假设有一个用户(User)表和一个订单(Order)表,每个用户可以有多个订单,这时可以使用 JOIN 来把它们关联起来。
在 SQL 查询中,通常会使用 LIKE 或者 EXISTS 进行一对多关联。例如:
```sql
SELECT u.*, o.*
FROM User u
LEFT JOIN Order o ON u.id = o.userId;
```
这里 `LEFT JOIN` 表示即使没有用户的订单记录,用户信息也会被返回,而订单信息可能是 NULL。如果只关心有订单的用户,可以用 `INNER JOIN` 替换。
在 Mybatis 中,你需要在 XML 映射文件中配置这样的查询,并提供结果映射(resultMap),以便将查询结果转换为 Java 对象。比如:
```xml
<select id="selectUserWithOrders" resultType="com.example.User">
SELECT u.*, o.*
FROM User u
LEFT JOIN Order o ON u.id = o.userId
</select>
```
然后在 Java 代码里通过 `UserMapper` 调用这个方法:
```java
List<User> usersWithOrders = userMapper.selectUserWithOrders();
```
阅读全文