[转]MyBatis中resultType与resultMap区别

MyBatis中关于resultType和resultMap的具体区别如下:

MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap。
resultType是直接表示返回类型的(对应着我们的model对象中的实体);
resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key-->value关系);
resultType跟resultMap不能同时存在。

在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是列名,值则是其对应的值。
1.当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis会自动把对应的值赋给resultType所指定对象的属性。
2.当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。

时间: 2024-09-30 06:56:08

[转]MyBatis中resultType与resultMap区别的相关文章

mybatis中resultType和resultMap的区别

MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMapresultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用但是resultType跟resultMap不能同时存在.在MyBatis进行查询映射的时候,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值.当提供的返回类型属性是resultType的时候,MyBatis会将Map里面的键值对取出赋给resultT

mybatis中resultType和resultMap的联系

在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 比如,我们平时使用的单表查询,很多时候使用的就是resultType 下来,看一段代码吧 1 package org.cxxy.base.cxsc.entity; 2 3 public class TbClass { 4 private Integer id; 5 6 private String classname; 7

MyBatis中selectByExample和selectByExampleWithBLOBs区别

MyBatis中selectByExample和selectByExampleWithBLOBs区别 先贴一段自动生成的Mapper代码 <select id="selectByExample" parameterType="com.pojo.TbItemParamExample" resultMap="BaseResultMap"> <select id="selectByExampleWithBLOBs"

zbb20180827 Mybatis中#{}和${}有什么区别?

1.Mybatis中#{}和${}有什么区别? (1) #{} 和 ${} 在预编译中的处理是不一样的.#{} 在预处理时,会把参数部分用一个占位符 ? 代替,而${}直接已字符串代替 例如: select * from tablename where name=#{name} 预编译的时候处理成 select * from tablename where name=? 而 select * from tablename where name=${name} 会在预编译中处理成 select *

Mybatis中的resultType和resultMap 区别

Mybatis中的resultType和resultMap 是mybatis 中返回类型一定用到的,但不会同时出现.mybatis返回类型肯定是map结构,然后根据返回类型是map还是对象类型,再转换. 在给对象设置属性的时候,两个方法肯定会调用. private Object getRowValue(ResultSetWrapper rsw, ResultMap resultMap) throws SQLException { final ResultLoaderMap lazyLoader

mybatis配置文件resultType和resultMap的区别以及mybatis自带的别名

returnType是自定义的类或者jdk自带的类 resultMap是在mapperXMl文件中通过resultMap节点定义出来的 例如: <resultMap id="BaseResultMap" type="com.sinosoft.reins.POJO.model.PrpMaxNo" >     <id column="GROUPNO" property="groupno" jdbcType=&qu

MyBatis有关resultType和resultMap差异

MyBatis中在查询进行select映射的时候,返回类型能够用resultType,也能够用resultMap.resultType是直接表示返回类型的(相应着我们的model对象中的实体),而resultMap则是对外部ResultMap的引用(预定义了db和model之间的隐射key-->value关系),可是resultType跟resultMap不能同一时候存在. 在MyBatis进行查询映射时.事实上查询出来的每个属性都是放在一个相应的Map里面的.当中键是属性名,值则是其相应的值.

大神带你重新认识Mybatis中强大的resultMap

前言在Mybatis中,有一个强大的功能元素resultMap.当我们希望将JDBC ResultSets中的数据,转化为合理的Java对象时,你就能感受到它的非凡之处.正如其官方所述的那样: resultMap元素是 MyBatis 中最重要最强大的元素.它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作.实际上,在为一些比如连接的复杂语句编写映射代码的时候,一份 resultMap 能够代替实现同等功能的长达

关于mybatis中mapper文件resultMap中collection的使用

collection的使用有两种resultMap和select,必须手动指定一种 1. 实体类: 1 package com.mrlu.mybatis.domain; 2 3 import java.util.List; 4 5 /** 6 * Created by stefan on 15-12-31. 7 */ 8 public class User { 9 private Integer id; 10 private String name; 11 private List<Accoun