mybatis中resultmap和resulttype
时间: 2023-04-30 11:03:56 浏览: 143
MyBatis中的resultMap和resultType是用来定义如何将查询结果映射到Java对象的两种方式。
resultType是一种简单的映射方式,它指定了查询结果的返回类型,MyBatis会自动将查询结果映射为该类型的对象,常用于单表查询。
而resultMap则是一种更灵活、更复杂的映射方式,它可以自定义属性的映射关系,支持级联查询和多表关联查询等高级映射操作,使用时需要在xml配置文件中定义。
相关问题
mybatis中resultmap和resulttype的区别
在MyBatis中,resultMap和resultType都是用来映射查询结果的。其中,resultType是将查询结果映射到一个JavaBean对象上,而resultMap则是将查询结果映射到一个自定义的结果集合中。
具体来说,resultType是指定一个JavaBean类型,MyBatis会自动将查询结果映射到该类型的对象上。例如:
```
<select id="getUserById" resultType="com.example.User">
select * from user where id = #{id}
</select>
```
这里的resultType指定了一个com.example.User类型,MyBatis会自动将查询结果映射到该类型的对象上。
而resultMap则需要手动定义一个映射规则,将查询结果映射到一个自定义的结果集合中。例如:
```
<resultMap id="userResultMap" type="com.example.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
</resultMap>
<select id="getUserById" resultMap="userResultMap">
select * from user where id = #{id}
</select>
```
这里的resultMap定义了一个名为userResultMap的映射规则,将查询结果映射到一个com.example.User类型的对象中。
mybatis中resultMap和resultType的区别
在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适用于复杂的查询结果映射,可以定义更灵活的映射规则。
阅读全文