ResultMap 和 resultType 是 MyBatis 中用于映射查询结果的两种方式。

  1. resultType: resultType 属性用于指定查询结果的类型。它可以是任何 Java 类的全限定名,也可以是 Java 基本类型或包装类。当查询的结果集非常简单,只有一个列时,可以使用 resultType 来指定查询结果的类型。

示例:

<select id="getUserCount" resultType="int">
    SELECT COUNT(*) FROM users
</select>

在这个例子中,查询结果只有一个列,即用户的数量,因此使用 resultType 来指定查询结果的类型为 int

  1. resultMap: resultMap 属性用于指定一个结果映射规则,将查询结果集中的列与 Java 对象的属性进行映射。通过 resultMap,可以将查询结果映射为复杂的 Java 对象,可以处理多个列和嵌套查询的情况。

示例:

<resultMap id="userResultMap" type="User">
    <id property="id" column="id" />
    <result property="username" column="username" />
    <result property="password" column="password" />
</resultMap>

<select id="getUserById" resultMap="userResultMap">
    SELECT * FROM users WHERE id = #{id}
</select>

在这个例子中,定义了一个名为 userResultMap 的结果映射规则,指定了查询结果中的 id 列与 Java 对象的 id 属性进行映射,以及 username 列和 password 列与 Java 对象的 username 属性和 password 属性进行映射。在查询语句中使用 resultMap 属性来应用这个结果映射规则。

总结:

  • resultType 适用于简单的查询结果,只需要指定结果的类型即可。
  • resultMap 适用于复杂的查询结果,可以通过定义结果映射规则来进行灵活的映射。
MyBatis 中 ResultMap 和 resultType 的区别:如何映射查询结果

原文地址: https://www.cveoy.top/t/topic/o7Wa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录