首页 > 其他分享 >mybatis 的ResultMap和ResultType区别是什么?

mybatis 的ResultMap和ResultType区别是什么?

时间:2022-08-31 11:24:56浏览次数:60  
标签:返回 String int ResultMap ResultType mybatis id

 
官方文档说明:

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

ResultMap和ResultType都是用于设置mybatis增删改查后返回的数据类型。那么什么时候用ResultMap,什么时候用ResultType呢?
如果你搜索只是返回一个值,比如说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>
 

标签:返回,String,int,ResultMap,ResultType,mybatis,id
From: https://www.cnblogs.com/xiaohouye/p/16642339.html

相关文章

  • mybatis 中resultMap原理
    mybatis中从数据库中查询出数据,然后转化成对象的过程中起了关键作用的一个类是ResultMap.他定义了查询的结果最终转化成了哪个类的对象,并且定义了每个对象的属性是由......
  • MyBatis基础
    MyBatis是什么这里就引用一下,Mybatis官方文档的定义,来简单说明一下Mybatis的整体作用:MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis......
  • MyBatis常用注解及基本增删改查的注解实现
    MyBatis的常用注解注解可以减少Mapper文件的编写,常用注解如下;@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可......
  • mybatis_13_SqlSessionFactory的DCL单例模式
    SqlSessionFactory的DCL单例模式 publicclassSqlSessionFactorySingleton{privateSqlSessionFactorySingleton(){}/***volatile关键字在此......
  • mybatis分页
    新人菜菜子再做项目之前没搞过分页 都是limit  上班了还这么搞 太土狗了项目上用了mybatis-plus百度了一下mybatis-plus怎么分页其他的配置项目之前都配置好了......
  • mybatis执行insert语句后,返回当前插入数据主键的方法 keyProperty区分大小写
    mybatis执行insert语句后,返回当前插入数据主键的方法keyProperty区分大小写#这样查询没有返回主键值<insertid="addLog"useGeneratedKeys="true"keyProperty="id"......
  • mybatis查询参数Set遍历查询
    #sqlmapper<resultMapid="BaseResultMap"type="com.LogEntity"><resultcolumn="ID"property="ID"/><resultcolumn="content_md5"property="co......
  • MyBatis复杂映射开发之多对多查询
    多对多查询的模型用户表和角色表的关系为,一个用户有多个角色,一个角色被多个用户使用。多对多查询的需求:查询所有用户的同时查询出该用户对应的所有角色。@startuml!th......
  • MyBatis复杂映射开发之一对一查询
    一对一查询需求用户表和订单表的关系为:一个用户可以有多个订单,一个订单只能从属于一个用户一对一查询需求:查询一个订单,同时查询出该订单所对应的用户对应的sql语句:sele......
  • mybatis批量插入时报错:syntax error, expect ‘)‘
    问题:mybatis批量插入时报错:syntaxerror,expect‘)’ 解决:是因为传入的参数list为null,在代码中加上list.size()>0的判断。mapper文件:<insertid="batchInsertSys......