resultType属性可以指定结果集的类型,它支持基本类型和实体类类型。

需要注意的是,它和parameterType一样,如果注册过类型别名的,可以直接使用别名。

没有注册过的必须使用全限定类名。

同时,当是实体类名称是,还有一个要求,实体类中的属性名称必须和查询语句中的列名保持一致,否则无法实现封装。

当实体类属性和数据库表的列名不一致时:

修改实体类代码:(此时的实体类属性和数据库表的列名已经不一致了)

public class User implements Serializable {

  private Integer userId;

  private String userName;

  private Date userBirthday;

  private String userSex;

  private String userAddress;

  .............

}

数据库列名:

此时若是还是使用原来的映射配置文件

<!-- 配置查询所有操作 -->

<select id="findAll" resultType="com.itheima.domain.User">

  select * from user

</select>

执行查询后的结果:

为什么名称会有值呢?

因为 mysql在windows系统中不区分大小写! LInux系统下严格区分大小写

解决思路一:使用别名进行查询

此时 若修改映射配置   使用别名进行查询

<!-- 配置查询所有操作 --> 
<select id="findAll" resultType="com.itheima.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  实现一对一查询和一对多查询。

定义resultMap

  resultMap标签中:

    type属性:指定实体类的全限定类名

    id属性:给定一个唯一标识,是给查询select标签引用用的。

  id标签:用于指定主键字段

  result标签:用于指定非主键字段

    column属性:用于指定数据库列名

    property属性:用于指定实体类属性名称

 <!--配置 查询结果的列名 和 实体类的属性名 之间的对应关系-->
<resultMap id="userMap" type="com.itheima.domain.User">
<!--主字段的对应-->
<id property="UserID" column="id"></id>
<!--非主字段的对应-->
<result property="userName" column="username"></result>
<result property="userBirthday" column="birthday"></result>
<result property="userSex" column="sex"></result>
<result property="userAddress" column="address"></result>
</resultMap>

映射配置

<select id="findAll" resultMap="userMap">
select * from user
</select>

Mybatis的输出结果封装的更多相关文章

  1. 5.Mybatis的输出映射(就是对查询的结果集的映射)

    Mybatis的输出映射,也就是对查询结果集的一个映射,主要有两种: 1.resultType(不需要配置,可以直接用) 一般是实体类 基本类型也可以 2.resultMap(需要配置resultMa ...

  2. hibernate和mybatis的之CRUD封装差别

    hibernate和mybatis的之CRUD封装差别 以下讲的是基于MVC三层架构. 由于设计架构的差别,hibernate在实际编程中可以把基础的CRUD封装,比如BaseDao类.其它类只要去继 ...

  3. Mybatis中输出映射resultType与resultMap的区别

    Mybatis中输出映射resultType与resultMap的区别 (原文地址:http://blog.csdn.net/acmman/article/details/46509375) 一.re ...

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

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

  5. MyBatis无限输出日志

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

  6. spring+mybatis+log4j 输出SQL

    1.在mybatis-config.xml配置中添加setting配置参数,会打印SQL执行结果 <?xml version="1.0" encoding="UTF ...

  7. mybatis 测试输出SQL语句到控制台配置

    1: mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  8. 使用mybatis自动实现接口封装返回结果集

    import java.lang.annotation.Annotation; import java.lang.annotation.Documented; import java.lang.ann ...

  9. SSM框架之Mybatis(2)CRUD操作

    Mybatis(2)CRUD 1.基于代理Dao实现CRUD操作 使用要求: 1.持久层接口(src\main\java\dao\IUserDao.java)和持久层接口的映射配置(src\main\ ...

随机推荐

  1. Verilog数组表示及初始化

    (转)Verilog数组表示及初始化 这里的内存模型指的是内存的行为模型.Verilog中提供了两维数组来帮助我们建立内存的行为模型.具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任 ...

  2. 蓝桥杯 历届试题 PREV-34 矩阵翻硬币

    历届试题 矩阵翻硬币   时间限制:1.0s   内存限制:256.0MB 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬 ...

  3. hihoCoder#1175拓扑排序应用

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho所在学校的校园网被黑客入侵并投放了病毒.这事在校内BBS上立刻引起了大家的讨论,当然小Hi和小Ho也参与到了 ...

  4. 实验吧CTF题库-安全杂项

    XDCTF misc200: 题目提示: 下载文件 用foremost分离文件 接下来用archpr 4.53进行明文攻击 先把00002700.zip中的readme.txt提取出来压缩成zip文件 ...

  5. Socket编程, 在server端read()函数调用后显示错误:Transport endpoint is not connected (犯了低级错误)

    for(;;){ socklen_t len = sizeof(client_address); connfd = accept(listenfd, (struct sockaddr *)&c ...

  6. spring Annotation

    使用注解替代xml 在前几章的笔记基础上添加使用注解的形式 1.配置applicationContext 添加context schema <?xml version="1.0&quo ...

  7. 剑指offer 34_丑数

    丑数:只有2 3 5 这三个因子的数,求前(第)1500个.习惯上我们把1当作第一个丑数 例如 6, 8是丑数.14不是. #include <stdio.h> int Min(int x ...

  8. 【WebRTC】简介

    WebRTC 名称源自网页实时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API.它于2011年6月1日开源并在Goog ...

  9. Maven学习入门——2016-2-17

    一.Maven的基本概念 1.1Mawen是干啥的??? 我们第一次接触Maven一般就是用Maven为我们的项目加入jar包,非常的方便. maven到底是干什么的??说白了,maven就是用来管理 ...

  10. SQL基础E-R图基础

    ER图分为实体.属性.关系三个核心部分.实体是长方形体现,而属性则是椭圆形,关系为菱形. ER图的实体(entity)即数据模型中的数据对象,例如人.学生.音乐都可以作为一个数据对象,用长方体来表示, ...