MyBatis的resultType和resultMap的使用及区别解读
resultType和resultMap是在使用 MyBatis 框架时,映射查询结果到对象时使用的两个不同的配置元素。
它们的主要区别在于它们如何映射 SQL 查询的结果集到 Java 对象。
resultType
resultType是一个简单的类型别名或者是一个完全限定的类名。
它用于将查询结果直接映射到一个简单的 Java 对象或者一个 Map 对象。
当使用resultType时,MyBatis会默认按照列名和对象属性名进行映射,如果列名和属性名不一致,需要手动指定映射关系。
适用于简单场景,当结果集直接对应于一个 Java 对象时。
示例:
<select id="selectUser" resultType="com.example.User">
SELECT id, username, password FROM users WHERE id = #{id}
</select>resultMap
- resultMap提供了一个更高级的、细粒度的控制,允许定义复杂的映射策略。
- 它允许为每个列指定一个映射路径,包括嵌套属性和集合属性。
- resultMap可以用于处理关联查询,将多个表的结果映射到一个对象或者对象的集合中。
- 它提供了更复杂的映射功能,如集合、继承、嵌套结果等。
示例:
<resultMap id="userResultMap" type="com.example.User">
<id property="id" column="id" />
<result property="username" column="username" />
<result property="password" column="password" />
</resultMap>
<select id="selectUser" resultMap="userResultMap">
SELECT id, username, password FROM users WHERE id = #{id}
</select>总的来说
resultType适用于简单的映射,而 resultMap提供了更复杂的映射能力,适用于需要精细控制结果集映射的场景。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring Boot 4 与 Spring Framework&nb
SpringBoot4和SpringFramework7带来了大量新特性,包括升级到JakartaEE11、支持Java21、增强模块化、优化测试、增加弹性功能等,本文介绍Spring Boot 4 与 Spring Framework 7新特性、升级要点与实战指南,感兴趣的朋友跟随小编一起看看吧2026-03-03
Mybatis中TypeAliasRegistry的作用及使用方法
Mybatis中的TypeAliasRegistry是一个类型别名注册表,它的作用是为Java类型建立别名,使得在Mybatis配置文件中可以使用别名来代替完整的Java类型名。使用TypeAliasRegistry可以简化Mybatis配置文件的编写,提高配置文件的可读性和可维护性2023-05-05


最新评论