解决Mybatis返回update后影响的行数问题
主要在JDBC链接中加入这个参数即可:
useAffectedRows=true

补充知识:mybatis批量update,返回行数为-1
mybatis批量更新返回结果为1,是由于mybatis的defaultExExecutorType引起的,
它有三个执行器:SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(prepared statements); BATCH 执行器将重用语句并执行批量更新。
BATCH可以批量更新操作,缓存SQL以提高性能,缺陷就是无法获取update、delete返回的行数。
如果要拿到更新条数,修改如下:
在mybatis-config.xml配置:
<configuration> <settings> <setting name="defaultExecutorType" value="SIMPLE"/> <setting name="defaultExecutorType" value="BATCH"/> </settings> </configuration>
以上这篇解决Mybatis返回update后影响的行数问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
详解Mybatis通用Mapper介绍与使用
使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL.而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改.这工作量和效率的影响或许就是区别增删改查程序员和真正程序员的屏障.这时,通用Mapper便应运而生-- 什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件.开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删
-
解决Mybatis查询方法selectById()主键不一致问题
Mybatis-plus的通用mapper为我们封装了很多方法,我们只需要将interface集成BaseMapper就可以.在BaseMapper中分装了一个方法=>selectById() selectById 这个方法是根据主键id进行查询记录的.返回一条记录.测试如下, 最终调用的是这个方法userDiamondMapper这个接口集成了BaseMapper. 注意这个表的主键就是uid,查询试试 返回结果不如我们预期,打印出的SQL很奇怪,并没有解析正确.猜测是因为无法正确解析出主键.
-
解决Mybatis中mapper.xml文件update,delete及insert返回值问题
最近写了几个非常简单的接口(CRUD),在单元测试的时候却出了问题,报错如下: Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'messageListener': Unsatisfied dependency expressed through field 'reviewCheckInfoService'; nested exce
-
解决Mybatis返回update后影响的行数问题
主要在JDBC链接中加入这个参数即可: useAffectedRows=true 补充知识:mybatis批量update,返回行数为-1 mybatis批量更新返回结果为1,是由于mybatis的defaultExExecutorType引起的, 它有三个执行器:SIMPLE 就是普通的执行器:REUSE 执行器会重用预处理语句(prepared statements): BATCH 执行器将重用语句并执行批量更新. BATCH可以批量更新操作,缓存SQL以提高性能,缺陷就是无法获取updat
-
解决mybatis返回boolean值时数据库返回null的问题
常规情况,我们使用数据库判断 true or false.所写的语句是select count(id) from 表名: 这种常用情况下,只有当查询语句查到数据 且 只有一条时才会返回 true; 还有一种情况,就是数据库中返回判断句,比如 返回的对错将以1或0表示: 但是当返回值为null,或者多个值的时候 会怎么样呢,0 1 还是报错? 测试表示这种情况下会报错: 希望大家使用 boolean 返回时 也能格外小心. 这里简单做了更改方法,可能不是最优化的,有更好的意见还请不吝赐教. 补充知
-
解决MyBatis返回结果类型为Boolean的问题
问题描述: 在使用MyBatis时,有时需要检查某个记录是否存在数据库中,然后根据其返回的布尔值true or false,来进行逻辑判断.那怎么做呢? 解决方案: 如检测某个手机号是否被注册过: <select id="checkPhoneExist" parameterType="java.lang.String" resultType="java.lang.Boolean"> <