MyBatis 将 SQL 执行结果封装为目标对象并返回的过程主要依靠 ResultMap 进行对象与数据库列的映射关系配置,以及 TypeHandler 进行 Java 类型和数据库类型之间的转换。主要的映射形式有:
1. 使用 ResultMap 进行对象映射:
通过 ResultMap 映射查询结果到 Java 对象,定义了查询结果集中列与 Java 对象属性之间的映射关系。
示例:
<!-- XML 映射文件中配置 ResultMap -->
<resultMap id="userResultMap" type="User">
<id property="id" column="user_id"/>
<result property="username" column="user_name"/>
<!-- 其他映射关系 -->
</resultMap>
2. 使用注解 @Result 进行对象映射:
通过注解方式进行映射,可以直接在查询方法上使用 @Result 定义查询结果和对象属性的映射关系。
示例:
@Results({
@Result(property = "id", column = "user_id"),
@Result(property = "username", column = "user_name"),
// 其他映射关系
})
3. 默认映射规则:
当 ResultMap 或 @Result 未配置映射关系时,MyBatis 使用默认规则进行映射,例如按照列名和属性名的匹配规则进行自动映射。
4. 使用 TypeHandler 进行类型转换:
TypeHandler 用于处理数据库字段和 Java 类型之间的转换,例如将数据库中的日期类型映射到 Java 的 Date 类型,或者将数据库中的字符串类型映射到枚举类型等。
通过这些映射形式,MyBatis 将查询结果集中的数据按照配置的映射关系转化为对应的 Java 对象,并返回给调用方。在配置映射时,可以灵活地选择合适的方式进行对象和数据库列之间的映射关系定义,以满足不同的业务需求。
Was this helpful?
0 / 0