一、resultType 配置结果类型

1.概述

resultType 属性可以指定结果集的类型,它支持基本类型和实体类类型。
 
需要注意的是,它和 parameterType 一样,如果注册过类型别名的,可以直接使用别名。没有注册过的必须
使用全限定类名。例如:我们的实体类此时必须是全限定类名,
同时,当是实体类名称时,还有一个要求,实体类中的属性名称必须和查询语句中的列名保持一致,否则无法
实现封装。

2.基本类型示例、实体类类型示例前面有

3.特殊情况示例(实体类属性和表的列名不一致)

a.修改实体类

private String userName;//列名是username

b.测试查询结果

@Test
public void testFindAll() {
List<User> users = userDao.findAll();
for(User user : users) {
System.out.println(user);
} }

为什么名称会有值呢?
因为:mysql windows 系统中不区分大小写!

c.修改映射配置

<select id="findAll" resultType="cn.oesoft.mybatis01.domain.User">select id as userId,username as userName,birthday as userBirthday,sex as userSex,address as userAddress from user</select>

思考:
如果我们的查询很多,都使用别名的话写起来岂不是很麻烦,有没有别的解决办法呢?
请看下一小节。

二、resultMap 结果类型

resultMap 标签可以建立查询的列名和实体类的属性名称不一致时建立对应关系。从而实现封装。
在 select 标签中使用 resultMap 属性指定引用即可。同时 resultMap 可以实现将查询结果映射为复杂类
型的 pojo,比如在查询结果映射对象中包括 pojo 和 list 实现一对一查询和一对多查询。

1.定义 resultMap

    <!-- 建立 User 实体和数据库表的对应关系type 属性:指定实体类的全限定类名id 属性:给定一个唯一标识,是给查询 select 标签引用用的。--><!--列名和属性名一致时,不需要建立对应关系,为了告知有id标签,才写上--><resultMap type="cn.oesoft.mybatis01.domain.User" id="userMap"><id column="id" property="id"/><result column="username" property="userName"/></resultMap>
id 标签:用于指定主键字段
result 标签:用于指定非主键字段
column 属性:用于指定数据库列名
property 属性:用于指定实体类属性名称

2.映射配置

<!-- 配置查询所有操作 --><select id="findAll" resultMap="userMap">select *from user</select>

3.测试结果

5-Mybatis 的输出结果封装相关推荐

  1. spring boot 整合mybatis 无法输出sql的问题

    使用spring boot整合mybatis,测试功能的时候,遇到到了sql问题,想要从日志上看哪里错了,但是怎么都无法输出执行的sql,我使用的是log4j2,百度了一下,很多博客都说,加上下面的日 ...

  2. 关于Mybatis查询结果的封装

    1.结果封装为List<Object> 接口示例: public List<Members> selectMembersListByName(String name); 配置文 ...

  3. 二、MyBatis常用对象分析 封装工具类

    1.0 MyBatis 对象分析 (1) Resources 类 Resources 类,顾名思义就是资源,用于读取资源文件.其有很多方法通过加载并解析资源文件,返回不同类型的 IO 流对象. (2) ...

  4. MyBatis无限输出日志

    最近在项目中使用mybatis与spring集成,由于项目使用maven分模块打包,经常遇到mybatis mapper少配置子模块或者maven pom中忘记引用子模块导致的mybatis加载不到d ...

  5. Java EE——Mybatis 框架学习

    文章目录 一.MyBatis 框架概述: 二. Mybatis 框架入门 三. 基于代理 Dao 实现 CRUD 操作 1.根据 ID 查询: 2.保存操作: 3.用户更新: 4.用户删除: 四.My ...

  6. ORM框架之Mybatis(一)基于mapper配置增删改查

    Mybatis是现在非常流行的SSM框架中的M部分,Mybatis也是一个主流的ORM框架,在项目中用来处理持久层数据. 一.Mybatis框架介绍及使用 1.1 mybatis框架概述: mybat ...

  7. MyBatis(四)Mybatis的参数

    目录 Mybatis的参数 一.parameterType配置参数 1. 引入 2. 注意事项 3. 传递poji包装对象 ①编写QueryVo ②编写持久层接口 ③持久层接口的映射文件 ④测试包装类 ...

  8. SSM框架学习----Mybatis(2)

    Mybatis框架学习--中 Mybatis框架学习----(2) 1. Mybatis的自定义分析 1. 第一步 2. 第二步 3. 第三步 4. 第四步 5. 第五步 2. Mybatis实现CR ...

  9. Mybatis_day2_Mybatis的参数深入

    parameterType 配置参数 使用说明 SQL 语句传参,需使用标签的 parameterType 属性来设定.该属性的取值可以是基本类型,引用类型(例如:String 类型),还可以是实体类 ...

最新文章

  1. 亚马逊:我们提取了BERT的一个最优子架构,只有Bert-large的16%,CPU推理速度提升7倍...
  2. Html5 History API解析
  3. 2.Java异常学习
  4. String 堆内存和栈内存
  5. 《HTML5触摸界面设计与开发》——导读
  6. Serverless Kubernetes 落地实践
  7. 机器学习 感知机算法_0(Matlab实现)
  8. 利用rsync如何同步单个文件
  9. 图论 —— DAG 的覆盖与独立集
  10. 量化评估推荐系统效果
  11. 开公司的两个方向,要么把公司开成很赚钱,要么把公司做成很值钱
  12. python中的断言
  13. Delphi创建ActiveX控件,实现安全接口及无界面代码
  14. go 语言学习 1. go的特性
  15. 明尼苏达量表结果分析_明尼苏达满意度量表的指标
  16. 正则表达式数字匹配规则整理
  17. If you are using Gradle, make sure that your current variant is debuggable.
  18. 适合研发团队的几个项目管理软件对比
  19. MySQL数据库创建表
  20. 论文总结:云安全研究方向及进展综述

热门文章

  1. k近邻法的实现(kd树)-相关问题梳理
  2. 虚拟机安装系统磁盘扩容
  3. 【算法】赫夫曼编码 解码
  4. 【elasticsearch】The number of object passed must be even but was [1]
  5. 【Flink】Flink kafka Spark 如何实现数据有序性
  6. 【Kafka】kafka报错 UnknownHostException: %HOSTGROUP::host_group_zookeeper%: Temporary failure in name re
  7. 95-270-020-源码-指标监测-概述
  8. 云计算实战系列十(文件查找及包管理)
  9. 【linux系统编程】剖析shell运行原理
  10. 图解 SpringMVC 五大组件