mybatis 连表查询
时间: 2024-07-25 11:01:35 浏览: 56
MyBatis 中的连表查询通常通过编写动态 SQL 或 XML 映射文件来实现。当你需要从两个或更多的表中获取数据,并基于这些表之间的关联关系进行联合查询时,可以采用以下步骤:
1. **设置关联映射**:在 MyBatis 的 XML 映射文件中,为关联的实体创建一对一、一对多或多对多的关系映射。这包括设置 `<association>` 标签或者 `<collection>` 标签。
2. **使用 resultMap 和 select`*` from...`**:在 SQL 映射标签 `select` 下,可以选择 `resultMap` 对象来定义返回结果的结构,然后指定 `select` 语句查询所有相关的表。例如,如果查询 User 表并包含他们的 Address,可以这么写:
```xml
<select id="getUserWithAddress" resultType="com.example.User">
SELECT * FROM user
LEFT JOIN address ON user.id = address.user_id
</select>
```
3. **使用 Java API**:除了 XML 映射,MyBatis 提供了 `@Select` 注解用于动态生成 SQL,可以更灵活地构造复杂的查询,如:
```java
@Select("SELECT u.*, a.* FROM user u LEFT JOIN address a ON u.id = a.user_id")
User getUserWithAddress(int userId);
```
4. **处理分页和排序**:在查询中加入分页信息,以及根据业务需求选择排序字段。
阅读全文