欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > MyBatis的resultType和resultMap区别

MyBatis的resultType和resultMap区别

2025/1/21 9:25:53 来源:https://blog.csdn.net/Helen_1997_1997/article/details/143923518  浏览:    关键词:MyBatis的resultType和resultMap区别

        resultType和resultMap是在使用 MyBatis 框架时,映射查询结果到对象时使用的两个不同的配置元素。它们的主要区别在于它们如何映射 SQL 查询的结果集到 Java 对象。

1. resultType

  • resultType是一个简单的类型别名或者是一个完全限定的类名。

  • 它用于将查询结果直接映射到一个简单的 Java 对象或者一个 Map 对象。

  • 当使用resultType时,MyBatis会默认按照列名和对象属性名进行映射,如果列名和属性名不一致,需要手动指定映射关系。

  • 适用于简单场景,当结果集直接对应于一个 Java 对象时。

示例:  

<select id="selectUser" resultType="com.example.User">SELECT id, username, password FROM users WHERE id = #{id}</select>

2. 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提供了更复杂的映射能力,适用于需要精细控制结果集映射的场景。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com