mybatis中resultMap和resultType的区别
时间: 2024-06-16 17:07:21 浏览: 125
在MyBatis中,resultType和resultMap都是于映射查询结果的方式,但它们有一些区别[^1][^2]。
1. resultType:resultType用于指定查询结果的返回类型。它可以直接指定一个Java类作为返回类型,MyBatis会将查询结果映射到该类的对象中。例如:
```xml
<select id="getUser" resultType="com.example.User">
SELECT * FROM user WHERE id = #{id}
</select>
```
这里的resultType指定了返回类型为com.example.User类,查询结果会被映射到User对象中。
2. resultMap:resultMap用于定义复杂的结果映射规则。它可以通过定义映射关系来将查询结果映射到多个Java类的对象中。例如:
```xml
<resultMap id="userMap" type="com.example.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
</resultMap>
<select id="getUser" resultMap="userMap">
SELECT * FROM user WHERE id = #{id}
</select>
```
这里的resultMap定义了一个名为userMap的映射规则,将查询结果的id、name和age字段分别映射到User对象的id、name和age属性中。
总结一下,resultType适用于简单的查询结果映射,而resultMap适用于复杂的查询结果映射,可以定义更灵活的映射规则。
阅读全文