resultTyperesultMap 是 MyBatis 中用于结果集映射的两种方式,它们有以下区别:

resultType

  • 作用resultType 指定了查询结果将被映射到的目标 Java 对象类型。
  • 用法:可以直接指定目标对象的类型,MyBatis 将结果集映射到该类型的对象中。

示例:

<!-- XML 映射文件 -->
<select id="getUser" resultType="User">
    SELECT user_id, user_name FROM users WHERE id = #{id}
</select>
  • 优点:简单直接,适用于简单的查询,但对于复杂对象结构映射较为局限。

resultMap

  • 作用resultMap 允许开发者自定义复杂的结果集到对象之间的映射关系。
  • 用法:需要在 XML 映射文件中定义一个resultMap,其中包含了详细的映射规则。

示例:

<!-- XML 映射文件 -->
<resultMap id="UserResultMap" type="User">
    <id property="id" column="user_id"/>
    <result property="username" column="user_name"/>
    <!-- 其他映射关系 -->
</resultMap>

<select id="getUser" resultMap="UserResultMap">
    SELECT user_id, user_name FROM users WHERE id = #{id}
</select>
  • 优点:灵活性更高,可以定义复杂的映射关系,适用于复杂对象结构的映射。

总结:

  • resultType 是将整个结果集直接映射到指定类型的对象。
  • resultMap 允许定义更加灵活和复杂的映射规则,适用于需要定制化映射的情况,尤其适合复杂对象结构的映射。

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.