resultmap和resulttype区别
时间: 2023-11-03 12:06:21 浏览: 44
resultMap 和 resultType 都是 MyBatis 中用于描述 SQL 查询结果的属性,二者有以下区别:
1. resultType 用于指定一个简单的 Java 类型,比如 String 或 Integer,用于描述查询结果的单个值。而 resultMap 用于描述复杂类型的映射,比如带有嵌套属性和集合属性的 Java 类型。
2. 使用 resultType 时,MyBatis 会自动为 Java 对象的属性赋值,属性与字段名一一对应。而使用 resultMap 时,需要手动进行属性和字段的映射。
3. resultMap 可以对查询结果进行高级处理,比如定义嵌套查询、级联查询、条件查询、统计查询等。
总结来说,resultType 适用于简单映射,而 resultMap 则适用于复杂映射。
相关问题
resultMap和resultType区别
resultMap和resultType是MyBatis中与结果映射相关的两个重要属性。
resultType指定了查询结果的类型,可以是Java类、基本数据类型或者Map等。例如:
```xml
<select id="selectUser" resultType="com.example.User">
select * from user where id=#{id}
</select>
```
resultMap是一个映射关系,将查询结果中的列与Java对象的属性进行映射。resultMap可以指定多个映射关系,每个映射关系都可以有自己的映射规则。例如:
```xml
<resultMap id="userMap" type="com.example.User">
<id property="id" column="user_id"/>
<result property="name" column="user_name"/>
<result property="age" column="user_age"/>
</resultMap>
<select id="selectUser" resultMap="userMap">
select user_id,user_name,user_age from user where id=#{id}
</select>
```
可以看出,resultType指定了查询结果的类型,而resultMap则指定了如何将查询结果映射到Java对象中。resultType适用于简单的结果映射,而resultMap适用于复杂的结果映射,可以更加灵活地控制映射规则。
resultmap和resulttype区别和应用
resultMap和resultType都是MyBatis框架中与查询结果映射相关的重要概念。其中,resultMap是一种自定义的映射方式,可以自由地将查询结果中的一些字段映射到Java对象的属性上;而resultType则是一种简单的映射方式,其适用于查询结果中只有一个简单数据类型的情况。
在应用场景上,resultMap适用于查询结果映射为多个复杂的Java对象的情况下,可以通过resultMap定义多个映射规则,将查询结果映射为多个Java对象。同时,resultMap还可以实现对象之间的关联映射,即通过定义关联关系来让多个Java对象之间关联起来。而resultType则适用于查询结果中只有一个简单数据类型的情况,比如统计查询结果中的总记录数、平均值、最大/最小值等。
需要注意的是,在使用resultMap和resultType时,其属性设置及用法是不同的。对于resultMap,需要在Mapper XML文件中先定义一个自定义类型的映射规则,然后在SQL语句中使用该resultMap即可实现结果映射;而对于resultType,则是直接在SQL语句中声明即可。
总之,resultMap和resultType都是MyBatis框架中实现查询结果映射的重要手段,其应用场景不同,但都可以实现比较灵活的结果映射规则。