mybatis的三表联合查询 resultMap
时间: 2024-08-12 15:04:36 浏览: 60
MyBatis 的三表联合查询(也称为关联查询或多对多查询)通常涉及在结果集中获取来自三个或更多关联表的数据。`resultMap` 是 MyBatis 中用于映射数据库查询结果到 Java 对象的一种配置机制。当你需要从多个表中获取数据并组合在一个对象中时,可以创建一个 `resultMap` 来指定如何组装这些字段。
在 `resultMap` 配置中,你可以这样描述:
```xml
<resultMap id="MyResultMap" type="com.example.YourEntity">
<id property="id" column="table1_id"/>
<result property="table1Data" column="table1_column"/>
<!-- 描述第二张表 -->
<association property="table2" javaType="com.example.Table2Entity">
<id property="table2Id" column="table2_id"/>
<result property="table2Column" column="table2_table2_column"/>
</association>
<!-- 描述第三张表,如果有多对多关系 -->
<collection property="relatedTableList" ofType="com.example.RelatedTableEntity">
<id property="relatedTableId" column="table3_id"/>
<result property="relatedColumn" column="table3_related_column"/>
</collection>
</resultMap>
```
这里,`table1`, `table2`, 和 `relatedTableList` 分别代表了查询结果中对应的不同部分。在 SQL 查询中,你需要编写 Join 语句来连接这些表。然后,在你的 DAO 或 Mapper 接口中,通过 `selectOne`、`selectList` 等方法,并传递这个 `resultMap` 的 ID,MyBatis 就会自动构建并返回一个包含所有关联数据的对象实例。
阅读全文