ResultMap和ResultType到底有什么区别?
转载请标明出处:https://www.cnblogs.com/Dreamice/
首先,SQL语句执行后返回的结果可以使用 Map 存储,也可以使用 POJO 存储。
一、使用Map存储结果集
下面分别是映射文件以及测试文件代码,其他文件省略
通过resultType="Map"的定义,返回Map
<!-- 查询所有书籍信息:通过resultType="Map"的方式 -->
<!-- 查询所有书籍信息:通过resultType="Map"的方式 -->
<select id="selectAllBookByTypeMap" resultType="Map">
select * from book
</select>
@org.junit.Test
public void test1() {
@Autowired
private BookService bookService;
List<Map> books = bookService.selectAllBookByTypeMap();
System.out.println("通过resultType=\"Map\"的方式:");
System.out.println(books);
}
运行结果:

二、使用Pojo存储结果集
定义Pojo类,特意定义name1属性,为了和数据库中的字段名name不一致
Book.java
public class Book {
private Integer id;
private String name1;
private String author;
//省略getter和setter函数
}
1、使用resultType="Map"
使用resultType="Map"进行查询时,可以通过使用别名的方式,保证自动映射到pojo类的属性名
<!-- 查询所有书籍信息:通过resultType="*.*.pojo"的方式 -->
<select id="selectAllBookByTypePojo" resultType="com.dreamice.pojo.Book">
select id,name name1,author from book
</select>
2、使用resultMap
在映射文件中定义resultMap
<!-- 查询所有书籍信息:通过resultMap="*.*.pojo"的方式 -->
<select id="selectAllBookByRMPojo" resultMap="bookResultMap">
select * from book
</select>
<!-- 定义resultMap-->
<resultMap id="bookResultMap" type="com.dreamice.pojo.Book">
<result property="name1" column="name"/>
</resultMap>
转载请标明出处:https://www.cnblogs.com/Dreamice/
@org.junit.Test
public void test1() {
@Autowired
private BookService bookService;
List<Book> booksPojo = bookService.selectAllBookByTypePojo();
System.out.println("通过resultType=\"*.*.pojo\"的方式:"); System.out.println(booksPojo);
System.out.println(booksPojo.get(0).getName1());
List<Book> booksRMPojo = bookService.selectAllBookByRMPojo();
System.out.println("通过resultMap的方式:");
System.out.println(booksRMPojo);
System.out.println(booksRMPojo.get(1).getName1());
System.out.println(booksRMPojo.get(1).getAuthor());
}
运行结果:

三、区别
所以,区别主要有:
1、查询结果为Map时,使用resultType;
2、简单查询且结果为Pojo类,也可以使用resultType,另外,查询字段名与Pojo属性名不一致,可以通过使用别名的方式;
3、复杂的映射或级联,可以使用resultMap;
转载请标明出处:https://www.cnblogs.com/Dreamice/
ResultMap和ResultType到底有什么区别?的更多相关文章
- ResultMap和ResultType在使用中的区别
在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使 ...
- 转载:ResultMap和ResultType在使用中的区别
在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使 ...
- ResultMap和ResultType在使用中的区别、MyBatis中Mapper的返回值类型
在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使 ...
- mybatis的resultMap与resultType的区别
一.概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部Res ...
- mybatis中的resultMap与resultType、parameterMap与 parameterType的区别
Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与 parameterType的区别在面试的时候被问到的几率非常高,项目中出现了一个小b ...
- Mybatis使用时 resultMap与resultType、parameterMap与 parameterType的区别
Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与 parameterType的区别在面试的时候被问到的几率非常高,出现的次数到了令人 ...
- Mybatis中resultMap与resultType区别
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultM ...
- Mybatis第七篇【resultMap、resultType、延迟加载】
resultMap 有的时候,我们看别的映射文件,可能看不到以下这么一段代码: <resultMap id="userListResultMap" type="us ...
- Union和Union All到底有什么区别
以前一直不知道Union和Union All到底有什么区别,今天来好好的研究一下,网上查到的结果是下面这个样子,可是还是不是很理解,下面将自己亲自验证: Union:对两个结果集进行并集操作,不包括重 ...
随机推荐
- iframe高度相关知识点整理
IFRAME 元素也就是文档中的文档. contentWindow属性是指指定的frame或者iframe所在的window对象. 用iframe嵌套页面是,如果父页面要获取子页面里面的内容,可以使用 ...
- android新闻项目、饮食助手、下拉刷新、自定义View进度条、ReactNative阅读器等源码
Android精选源码 Android仿照36Kr官方新闻项目课程源码 一个优雅美观的下拉刷新布局,众多样式可选 安卓版本的VegaScroll滚动布局 android物流详情的弹框 健身饮食记录助手 ...
- screen模式下鼠标无法滚动【问题】
忍了很久, 终于查到原因了. 回滚模式: CTRL+A (释放), [ 切换模式: CTRL+ C 参考: https://serverfault.com/questions/206303/how-t ...
- UI自动化(selenium+python)之浏览器驱动chromedriver安装和配置
一.安装selenium 前提是已安装Python,python安装 自行百度,这里不概述 安装好python后,cmd打开终端窗口-->pip命令安装 :pip install seleniu ...
- Pickle的简单使用
单词Pickle的中文意思是“泡菜.腌菜.菜酱”的意思,Pickle是Python的一个包,主要功能是对数据进行序列化和反序列化.那么什么叫序列化和反序列化呢? 其序列化过程就是把数据转化成二进制数据 ...
- Spring 的 IOC 和 AOP 的理解
Spring 的 IOC 和 AOP 的理解: https://www.jianshu.com/p/bf1adc3b75e6 对Spring的核心(AOP和IOC)的理解(大白话) https://w ...
- memcached_高可用
memcached高可用 一.magent 1.安装 cd /usr/local/mkdir ./magentcd ./magentwget -c http://memagent.googlecode ...
- Java面试宝典2017
JAVA面试.笔试题(2017版) 欲想成功,必须用功! 目录 一. HTML&CSS部分................ ...
- S5P4418开发板android源码下uboot和内核缺省文件的配置
uboot 需要配置缺省文件,进入解压的源码目录 android,然后进入 u-boot 目录,如下图所示.如上图所示,如果是 1G 核心板,则使用“cp nsih-1G16b-4418.txt ns ...
- 极简配置,业务上云只需 3min
为了简化账号配置环节,实现本地一键开发部署,Serverless Framework 发布了微信扫码一键登录能力,支持用户在 Serverless Framework 环境扫码注册登陆,用户无需登录控 ...