MyBatis中的输出映射有两种:resultType和resultMap。

1、resultType

  使用resultType进行结果映射时,只有当查询结果中有至少一列的名称和resultType指定的POJO的某个属性名称相同时,才会映射成功。如果查询出来的列名和POJO中的属性名全部不一致,就不会映射成任何POJO对象(解决这个问题可以使用下面介绍的resultMap映射)。

  resultType的类型可以是HashMap,这样查询出来的列名就是HashMap中的key。

2、resultMap

  MyBatis使用resultMap可以完成高级输出结果的映射。如果查询出来的列名和POJO中的属性名不一致,可以通过定义一个resultMap对列名和POJO属性名之间做一个映射关系。resultMap的具体代码如下:
定义resultMap的代码:
<!-- 自定义ResultMap:自定义ResultMap的作用是将查询出来的列名和pojo的属性名做一个映射关系 -->
<!-- type是最终映射到的pojo对象类型,可以是属性名;id是对ResultMap的唯一标识 -->
<resultMap type="emp" id="employeeMap">
<!-- id标签和result标签中都有column和property两个属性,前者是查询出来的列名,后者是映射到的pojo中的属性名 -->
<!-- id表示查询结果中的主键列的映射关系 -->
<id column="eid" property="empNo" />
<!-- result表示查询结果中的普通列的映射关系 -->
<result column="username" property="eName" />
</resultMap>

  Statement中的代码:

<!-- 使用resultMap输出员工信息,resultMap的属性值是自定义的resultMap的id -->
<!-- 注意:如果resultMap定义在其他mapper文件中,则需要在resultMap的id前面加上所在mapper文件的namespace值 -->
<select id="findEmployeeListWithResultMap" resultMap="employeeMap">
SELECT empno eid, ename username FROM EMP
</select>

  Mapper接口中的代码:

List<Employee> findEmployeeListWithResultMap() throws Exception;

  测试代码:

// 使用resultMap输出员工信息
@Test
public void testFindEmployeeListWithResultMap() throws Exception {
SqlSession session = factory.openSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
List<Employee> list = mapper.findEmployeeListWithResultMap();
for (Employee e : list) {
System.out.println(e);
}
}

【JAVA - SSM】之MyBatis输出映射的更多相关文章

  1. 【JavaEE】之MyBatis输出映射

    MyBatis中的输出映射有两种:resultType和resultMap. 1.resultType 使用resultType进行结果映射时,只有当查询结果中有至少一列的名称和resultType指 ...

  2. mybatis输出映射总结

    使用resultType作为输出映射 只有查询出来的列名和pojo中的属性名一致时,才会映射成功, 如果不一致,可以使用resultMap最为输出类型 不管是输出单个对象还是列表(list中包括poj ...

  3. 04.Mybatis输出映射之ResultMap

    当实体类中的字段名与数据库中的字段名不一致时需要手动设置映射关系 在Mapper.xml中定义 <!-- resultMap最终还是要将结果映射到pojo上,type就是指定映射到哪一个pojo ...

  4. 【Mybatis架构】输入、输出映射

    前言综述:   其实在我们分析Mybatis的查询缓存或者是一些简介的时候,我们就不难看到有关于Mybatis输入输出映射的东西,比如说: 但是一直没有想起来系统的来总结一下这方面的相关知识,偶然看到 ...

  5. Java基础-SSM之mybatis一对多和多对一关系映射

    Java基础-SSM之mybatis一对多和多对一关系映射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表)  1>.创建customers表: ...

  6. 【JAVA - SSM】之MyBatis与原生JDBC、Hibernate访问数据库的比较

    首先来看一下原生JDBC访问数据库的代码: public static void main(String[] args) { // 数据库连接 Connection connection = null ...

  7. JAVAEE——Mybatis第二天:输入和输出映射、动态sql、关联查询、Mybatis整合spring、Mybatis逆向工程

    1. 学习计划 1.输入映射和输出映射 a) 输入参数映射 b) 返回值映射 2.动态sql a) If标签 b) Where标签 c) Sql片段 d) Foreach标签 3.关联查询 a) 一对 ...

  8. mybatis-输入输出映射-动态sql-关联查询-mybatis与spring-逆向工程

    1.1. 输入映射和输出映射 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 1.1.1. 环境准备 1. 复制昨天的工程 ...

  9. mybatis入门基础(四)----输入映射和输出映射

    一:输入映射 通过parameterType指定输入参数的类型,类型可以是简单类型.hashmap.pojo的包装类型. 1.1.传递pojo的包装对象 1.1.1.需求描述 完成用户信息的综合查询, ...

随机推荐

  1. JavaBean的使用

    JavaBean主要用于实现一些业务逻辑或封装一些业务对象 通常将JavaBean中的属性设置为私有的(private),但需要为其提供公共的(public)访问方法,也就是所说的getXXX()方法 ...

  2. zend studio 9.0.4 安装破解

    转载于 http://www.geekso.com/ZendStudio9-key 注册破解步骤第一步:如果已经安装过Zend Studio 9.0.4的,请打开Zend Studio 9.0.4,在 ...

  3. qt 5 小练习 简易画板

    如何在窗口上画线?用一根根线来拼凑图案呢? 想必大家都知道点的集合是线,而线的集合就是很多线啦,用线的集合我们能拼凑出许许多多的图案.于是我就要记录自己跟着老师的学习之路啦: 既然有集合的话,势必要用 ...

  4. Google java编程技术规范

    不遵循规范的程序猿,不是好的coder. 学习java有一段时间了,一直想找java编程技术规范来学习一下,幸而网络资源丰富,各路玩家乐于分享,省去了好多麻烦,姑且算站在网友的肩上,砥砺前行. /** ...

  5. 时序图(Sequence Diagram)

    控制焦点Focus on Control 的取值: Alternative fragment(denoted “alt”) 与 if…then…else对应 Option fragment (deno ...

  6. SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-006-当构造函数有集合时的注入

    一.当构造函数有集合时,只能用<CONSTRUCTOR-ARG>,不能用C-NAMESPACE 二. 1. package soundsystem.collections; import ...

  7. OA学习笔记-004-Spring2.5配置

    一.jar包 (1)spring.jar (2)Aop包 aspectjrt.jaraspectjweaver.jar (3)动态代理 cglib-nodep-2.1_3.jar (4)日志 comm ...

  8. show processlist 输出ID 和 information_schema.PROCESSLIST 的id,information_schema.innodb_trx的TRX_MYSQL_T

    Session 1: mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> update Client ...

  9. 矩阵, 矩阵 , Android基础控件之ImageView

    天下文章大家抄,以下所有内容,有来自copy,有来自查询,亦有自己的总结(目的是总结出自己的东西),所以说原创,不合适,说是转载也不恰当,所以我称之为笔记,可惜没有此分类选项,姑且不要脸一点,选择为原 ...

  10. git svn cygwin_exception

    git for windows 2.5 版本发布了,更新之后,使用git svn的时候,就出错 git svn rebase Or git svn dcommit After a update git ...