MyBatis 将 SQL 执行结果封装为目标对象并返回的过程涉及到结果集的映射操作。它提供了多种映射形式来完成这个过程:
映射形式:
- 基本映射:
- 将查询结果集中的列直接映射到目标对象的属性。要求查询的列名和对象的属性名一致或符合映射规则。
- 嵌套映射:
- 通过嵌套查询,将复杂的查询结果映射到嵌套对象中,以实现对象之间的关联关系。
- 关联映射:
- 通过关联查询,将不同表的查询结果映射到相互关联的对象中,建立对象之间的关联关系。
- 自定义映射:
- 通过自定义 TypeHandler 或者 ResultSetHandler 来定制化结果集的映射处理。
映射实现方式:
- XML 映射:
- 在 XML 映射文件中,使用
<resultMap>
标签来定义结果集的映射规则,指定每个列如何映射到目标对象的属性。
<resultMap id="userMap" type="User"> <id property="id" column="user_id"/> <result property="username" column="user_name"/> <!-- 其他属性映射 --> </resultMap>
- 在 XML 映射文件中,使用
- 注解方式:
- 使用注解
@Results
和@Result
来声明结果集的映射规则,直接在接口方法上进行映射配置。
@Results({ @Result(property = "id", column = "user_id"), @Result(property = "username", column = "user_name"), // 其他属性映射 })
- 使用注解
- 混合方式:
- 也可以混合使用 XML 映射和注解方式进行结果集的映射配置,以实现更灵活的映射规则。
无论使用哪种映射形式,MyBatis 都会根据映射规则,将查询结果中的数据按照配置进行封装,并返回映射后的目标对象或对象列表。
Was this helpful?
0 / 0