mybatis的result和resultMap标签
时间: 2023-08-16 09:35:17 浏览: 113
MyBatis中的result和resultMap标签都是用于将查询结果映射到Java对象上的标签,但它们之间有一些区别。
1. result标签
result标签是用于描述如何将查询结果中的一列或多列映射到Java对象的属性上的。它通常用在select标签中,用于指定查询结果集中的一列或多列与Java对象的属性之间的映射关系。result标签有两个属性:column和property,分别表示查询结果集中的列名和Java对象的属性名。
例如:
```xml
<select id="getUserById" resultType="com.example.User">
select id, username, password, email from user where id = #{id}
<result column="username" property="username"/>
<result column="password" property="password"/>
<result column="email" property="email"/>
</select>
```
在上面的示例中,result标签用于将查询结果集中的username、password和email列分别映射到User对象的username、password和email属性上。
2. resultMap标签
resultMap标签是用于描述如何将查询结果集中的多列映射到Java对象的多个属性上的。它通常用在select、insert、update和delete标签中,用于指定查询结果集中的多列与Java对象的多个属性之间的映射关系。resultMap标签有多个子标签,包括id、result、association、collection等,用于指定映射关系的不同方面。
例如:
```xml
<resultMap id="userMap" type="com.example.User">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="password" property="password"/>
<result column="email" property="email"/>
</resultMap>
<select id="getUserById" resultMap="userMap">
select id, username, password, email from user where id = #{id}
</select>
```
在上面的示例中,resultMap标签用于将查询结果集中的id、username、password和email列分别映射到User对象的id、username、password和email属性上。
综上所述,result标签和resultMap标签都是用于将查询结果映射到Java对象上的标签,但它们的使用场景和功能略有不同。result标签适用于简单的映射关系,而resultMap标签适用于复杂的映射关系。
阅读全文