转载请标明出处: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到底有什么区别?的更多相关文章

  1. ResultMap和ResultType在使用中的区别

    在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使 ...

  2. 转载:ResultMap和ResultType在使用中的区别

    在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使 ...

  3. ResultMap和ResultType在使用中的区别、MyBatis中Mapper的返回值类型

    在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使 ...

  4. mybatis的resultMap与resultType的区别

    一.概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部Res ...

  5. mybatis中的resultMap与resultType、parameterMap与 parameterType的区别

    Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与  parameterType的区别在面试的时候被问到的几率非常高,项目中出现了一个小b ...

  6. Mybatis使用时 resultMap与resultType、parameterMap与 parameterType的区别

    Map:映射:Type:Java类型  resultMap 与 resultType.parameterMap 与  parameterType的区别在面试的时候被问到的几率非常高,出现的次数到了令人 ...

  7. Mybatis中resultMap与resultType区别

    MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultM ...

  8. Mybatis第七篇【resultMap、resultType、延迟加载】

    resultMap 有的时候,我们看别的映射文件,可能看不到以下这么一段代码: <resultMap id="userListResultMap" type="us ...

  9. Union和Union All到底有什么区别

    以前一直不知道Union和Union All到底有什么区别,今天来好好的研究一下,网上查到的结果是下面这个样子,可是还是不是很理解,下面将自己亲自验证: Union:对两个结果集进行并集操作,不包括重 ...

随机推荐

  1. CodeForces 990B Micro-World(思维、STL)

    http://codeforces.com/problemset/problem/990/B 题意: 有n个细菌,每个细菌的尺寸为ai,现在有以常数k,如果细菌i的尺寸ai大于细菌j的尺寸aj,并且a ...

  2. CodeForces 996B World Cup(思维)

    https://codeforces.com/problemset/problem/996/B 题意: 圆形球场有n个门,Allen想要进去看比赛.Allen采取以下方案进入球场:开始Allen站在第 ...

  3. 理解ClassLoader工作机制

    package com.ioc; public class Test { public static void main(String[] args) throws ClassNotFoundExce ...

  4. mysql创建视图和存储过程,变量

    创建视图 sql>create view 视图名 as select语句; 修改视图并添加别名 sql>create or replace view empvu10 (employee_n ...

  5. Office、VBA开发方案选择指南

    最近很多朋友向我提出Office的开发方式方面的疑惑,主要是针对特定的系统和Office版本不知道选择哪一种编程语言.创建哪一种类型的项目. 事实确实如此,如果搞不清楚语言的特性和项目类型的特点,很可 ...

  6. iOS雪花动画、音频图、新闻界面框架、2048游戏、二维码条形码扫码生成等源码

    iOS精选源码 粒子雪花与烟花的动画 iOS 2048游戏 JHSoundWaveView - 简单地声波图.音波图 一个可快速集成的新闻详情界面框架,类似今日头条,腾讯新闻 二维码/条形码扫描及扫描 ...

  7. springboot FreeMarker template error

    注释掉<#list>xxx</#list> 现在运行就不报错了

  8. 存储过程获取QLIKVIEW关键数据

    declare @table table(DDID INT,FHDID INT ,CKDID INT,ZGYSDID INT,CWYSDID INT)--定义表变量来存放存储过程返回的内容insert ...

  9. javascript正则表达式和php匹配 获取文章的 图片集

    1.脚本javascript: var str="<a href='05.html'><img src='img/4.jpg' alt='单击查看下一张' />< ...

  10. JavaScript 的DOM操作及实例

    一.Windows对象操作 (1).用代码打开窗口:window.open("第一部分","第二部分","第三部分","第四部分& ...