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);
}
}

最新文章

  1. Python:基本语法1
  2. python使用uuid库生成唯一id
  3. LNMP脚本安装
  4. Oracle的分页查询
  5. jquery 选择器中含有空格注意
  6. 转:MVC 下导航超链接本页面高亮的一种解决方案
  7. Devexpress DateEdit选年月 z
  8. OpenSUSE SuSEfirewall2
  9. Android - Mac系统Android程序位置
  10. 二分查找(Binary Search)的基本实现
  11. 在Linux系统如何让程序开机时自动启动
  12. Angular简易分页设计(一):基本功能实现
  13. mybatis-分页显示数据
  14. New Windows 10 SDK - Toast Notification
  15. Conda常见命令
  16. DVWA 黑客攻防演练(六)不安全的验证码 Insecure CAPTCHA
  17. springboot 集成mybatis plus3
  18. Oracle EBS OPM close batch
  19. 第三百五十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy的暂停与重启
  20. Linux实验楼学习之一

热门文章

  1. SpringBoot项目集成socketIo实现实时推送
  2. Nginx专题(1):Nginx之反向代理及配置
  3. sql中实现先排序后分组
  4. 学习笔记34_EF上下文管理
  5. Flex 和 Bison 使用方法
  6. Java 实现一个 能够 进行简单的增删改查的 超市管理系统
  7. 「刷题」xor
  8. js 将base64转为图片
  9. 01-MyBatis启动流程分析
  10. python入门递归之汉诺塔