在 MyBatis 中,<resultType>
和 <resultMap>
都是用于映射查询结果的元素,它们分别用于指定简单类型和复杂类型的映射关系。以下是它们的简要说明:
1. <resultType>
<resultType>
用于指定返回结果的简单类型,通常是基本数据类型或包装类。当查询的结果只有一个简单类型时,可以使用 <resultType>
。
示例:
<select id="selectUserNameById" resultType="java.lang.String">
SELECT user_name FROM users WHERE user_id = #{userId}
</select>
在这个示例中,查询返回的是一个用户名(java.lang.String
类型),因此使用了 <resultType>
。
2. <resultMap>
<resultMap>
用于定义复杂类型的映射关系,通常用于将查询结果映射到一个自定义的 Java 对象。这对于处理关联关系或者多表查询结果非常有用。
示例:
<resultMap id="userResultMap" type="com.example.User">
<id property="userId" column="user_id"/>
<result property="userName" column="user_name"/>
<result property="email" column="email"/>
</resultMap>
<select id="selectUserById" resultMap="userResultMap">
SELECT user_id, user_name, email FROM users WHERE user_id = #{userId}
</select>
在这个示例中,定义了一个名为 userResultMap
的 <resultMap>
,并指定了 User
类型。然后在查询语句中使用 resultMap
属性关联映射关系。
选择使用 <resultType>
还是 <resultMap>
- 使用
<resultType>
主要适用于简单的查询,返回的结果是单一的基本类型或包装类型。 - 使用
<resultMap>
更适用于复杂的查询,返回的结果需要映射到自定义的 Java 对象,或者涉及多表查询等情况。
根据你的查询需求,选择合适的方式来映射查询结果。
标签:,映射,示例,结果,查询,user,类型 From: https://blog.51cto.com/yang/9285396