MyBatis中的resultType和resultMap
2016-06-22 17:10
323 查看
MyBatis的查询在进行映射的时候,返回值类型可以使用resultType同时也可以使用resultMap。前者表示直接的返回值类型,一般是domain名称,当然这里可以写domain的全部路径也可以简写这样就得在MyBatis的配置文件中扫描实体。而后者表示对外部的ResultMap的引用,两者不能同时存在。
MyBatis在进行查询映射时,其实是和jdbcTemplate中queryForList一样是将查询出来的每一个属性都放在一个对应的map里的,其中键是属性名,值是对应的值。
当我们提供的返回类型是resultType时,MyBatis会将map中的键值对取出赋给resultType所指定的对象对应的属性,所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型是resultType时,MyBatis会自动将对应的值赋给resultType所指定对象的属性。
当我们提供的返回类型是resultMap时,因为map不能很好的表示领域模型,就需要我们自己定义resultMap和领域模型的映射关系,来进一步将他转换为对应的对象。
<!-- Seckill queryById(long seckillId);-->
<select id="queryById" parameterType="long" resultType="Seckill">
select seckill_id,name,number,start_time,end_time,create_time
from seckill
where seckill_id = #{seckillId}
</select>
MyBatis会自动创建一个ResultMap对象,因为这里指定了resultType,所以会从ResultMap中取出与Seckill对象中对应的键值进行赋值。
后续介绍随后在写~工作了
MyBatis在进行查询映射时,其实是和jdbcTemplate中queryForList一样是将查询出来的每一个属性都放在一个对应的map里的,其中键是属性名,值是对应的值。
当我们提供的返回类型是resultType时,MyBatis会将map中的键值对取出赋给resultType所指定的对象对应的属性,所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型是resultType时,MyBatis会自动将对应的值赋给resultType所指定对象的属性。
当我们提供的返回类型是resultMap时,因为map不能很好的表示领域模型,就需要我们自己定义resultMap和领域模型的映射关系,来进一步将他转换为对应的对象。
<!-- Seckill queryById(long seckillId);-->
<select id="queryById" parameterType="long" resultType="Seckill">
select seckill_id,name,number,start_time,end_time,create_time
from seckill
where seckill_id = #{seckillId}
</select>
MyBatis会自动创建一个ResultMap对象,因为这里指定了resultType,所以会从ResultMap中取出与Seckill对象中对应的键值进行赋值。
后续介绍随后在写~工作了
相关文章推荐
- php header 设置文件下载
- oracle 断电启动失败:ORA-00600: internal error code, arguments
- redis管理工具——Redis Desktop Manager
- 学习总结-Active Directory 域服务管理10-信任管理
- leetcode:Longest Substring Without Repeating Characters
- 深度学习之(十一)Deep learning中的优化方法:随机梯度下降、受限的BFGS、共轭梯度法
- html中a标签点击去掉高亮背景
- 解决 - java.lang.OutOfMemoryError: unable to create new native thread
- nginx按天切割日志
- <!DOCTYPE> DTD基础
- asp.net与asp.net 优缺点
- 信息检索(IR)的评价指标介绍 - 准确率、召回率、F1、mAP、ROC、AUC
- ace tree使用小记
- voip相关书籍
- Gulp 简单使用说明
- mybatis时间段查询(sql)
- ReSharper Ultimate 10.0.0.2
- 通过iframe 嵌套页面的宽高自适应问题
- 自定义android EditText样式及使用方式
- 简单的生成二维码的小demo,扫描后可以看到你自定义的信息