温馨提示×

Mybatis中resultMap和resultType有什么区别

小亿
85
2023-12-22 12:08:56
栏目: 编程语言

在Mybatis中,resultMap和resultType是用来映射查询结果集的两种不同的方式。

  1. resultType是指定查询结果的类型,可以是基本类型(如int、String等)或者自定义的Java对象类型。当查询结果只有一个列时,可以使用resultType直接指定列的类型。示例:
<select id="getUserCount" resultType="int">
    SELECT COUNT(*) FROM users
</select>
  1. resultMap是通过定义一个映射关系来将查询结果集的列映射到Java对象的属性上。在resultMap中,可以指定每个列对应的属性、类型、以及一些额外的映射规则。示例:
<resultMap id="userResultMap" type="User">
    <id property="id" column="id" />
    <result property="name" column="name" />
    <result property="age" column="age" />
</resultMap>

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

总结:

  • resultType适用于简单的查询,只返回一个基本类型或者简单对象。
  • resultMap适用于复杂的查询,可以将查询结果映射到自定义的Java对象中,并且可以进行一些额外的映射规则的配置。

0