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. 万能Adapter以及ViewHolder性能优化
  2. 回忆:#define的用法
  3. CRC编码
  4. js判断移动端是否安装某款app的多种方法
  5. css经典布局学习
  6. 编译ITK
  7. 草珊瑚的css基础
  8. 2013 ACM/ICPC Asia Regional Changsha Online G Goldbach
  9. Get-ChildItem参数之 -Exclude,Filter,Recurse应用
  10. HDU1171——Big Event in HDU(母函数)
  11. STM32 CAN 波特率设置及采样点设置
  12. hadoop集群监控工具ambari安装
  13. C# 图形普通处理,resize ,水印..
  14. Spring Boot 系列教程16-数据国际化
  15. VR全景加盟-全景智慧城市携万千创业者决战BAT
  16. Python列表的深浅复制
  17. Nowcoder contest 370B Rinne Loves Graph 【分层图最短路】
  18. XamarinAndroid组件教程RecylerView自定义适配器动画
  19. python装饰器带括号和不带括号的语法和用法
  20. docker打包centos增加中文支持

热门文章

  1. sql性能优化总结(转)
  2. URL参数加密解密
  3. UIApplication 常用方法
  4. 【XCode7+iOS9】http网路连接请求、MKPinAnnotationView自定义图片和BitCode相关错误--备用
  5. Visual Studio 内置快速生产代码简写集合
  6. [BZOJ 3530] [Sdoi2014] 数数 【AC自动机+DP】
  7. VS2010皮肤控件介绍
  8. Python---十年语言之首
  9. Linq查询出结果集中重复数据
  10. HDU 3308 LCIS 线段树区间更新