MyBatis中resultType和resultMap的区别

[size=medium][align=left]
MyBatis中关于resultType和resultMap的区别

共同:MyBatis中在查询进行select映射的时候,返回类型为resultType、resultMap
区别:
1.resultType是直接表示返回类型的(对应着我们的model对象中的实体)
2.resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key-->value关系),但是resultType跟resultMap不能同时存在。

<resultMap id="BaseResultMap" type="po.BuyerCompanyInfo">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="executive_firstname" jdbcType="VARCHAR"property="executiveFirstname"/>
<result column="executive_lastname" jdbcType="VARCHAR"
property="executiveLastname" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>

在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。

具体解释:
①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis会自动的把给对应的值赋给resultType所指定对象的属性。

②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。

个人总结:
1.与数据表对应的实体类中若有如下类似字段
表中create_time
类中createTime
返回值类型为 resultMap
否则,select方法的结果值中createTime字段的值为NULL


参考文献:
[url]http://www.tuicool.com/articles/ju2Y7n[/url]
[/align]
[/size]
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值