ResultMap和ResultType的区别,小白看完这篇你就懂了

ResultMap和ResultType是什么?

官方文档说明:

  • ResultType: 期望从这条语句中返回结果的类全限定名或别名。 注意,如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身的类型。 resultType 和 resultMap 之间只能同时使用一个。
  • ResultMap: 对外部 resultMap 的命名引用。结果映射是 MyBatis 最强大的特性,如果你对其理解透彻,许多复杂的映射问题都能迎刃而解。

白话文说明:

  • ResultMapResultType都是用于设置mybatis增删改查后返回的数据类型。那么什么时候用ResultMap,什么时候用ResultType呢?
  1. 如果你搜索只是返回一个值,比如说String ,或者是int,那你直接用resultType就行了。

例如:


  //dao中的接口
  int addArticleThumbs(String id);

<!--文章点赞数+1-->
  <update id="addArticleThumbs" ResultType="int">
        update
            <include refid="tableName"></include>
        <set>
            art_thumbs = art_thumbs+1
        </set>
        where
            id = #{id}
  </update>

该SQL返回的是int型,那么ResultType定义成int型即可直接与Java进行绑定(基本数据类型默认可不写)。
2. 但是你如果是返回一个复杂的对象,就可以使用ResultMap(当然ResultType也是可以的)。

例如:

创建User 对象, 拥有两个字段id,userName。

//dao中的接口
User queryUser(String id);

  <resultMap id="User" type="com.ssbm.ccapp.model.app.Usre">
    <result column="user_name" jdbcType="VARCHAR" property="userName" />
  </resultMap>
  
<!--文章点赞数+1-->
 <select id="queryUser" resultMap="User">
     select * from user where id = #{id}
 </select>
 

从代码中可以清晰的看出,resultMap可以对返回的参数进行配置,mybatis默认会进行驼峰转换,当数据库字段和Java对象字段不满足驼峰(列名不匹配),可以通过这里来配置,进行字段匹配。

以上的介绍是简单的入门,resultMap当然有更牛逼的用法,续更中,关注不迷路。。。

  • 16
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值