mybatis-plus使用updateBatchById小记

这篇具有很好参考价值的文章主要介绍了mybatis-plus使用updateBatchById小记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


//    @Transactional(rollbackFor = Exception.class)
    public Boolean test() {
        List<StaffInfo> staffInfos = this.list();
        staffInfos = staffInfos.stream().map(staffInfo -> {
            if(staffInfo.getNumber().equals("0132791")) {  //如果number=0132791,则把元素设置成null,制造exception
                staffInfo = null;
                return staffInfo;
            }else{
                staffInfo.setEntryTime(0L);
                return staffInfo;
            }
        }).collect(Collectors.toList());
      return   this.updateBatchById(staffInfos);
//        staffInfos.forEach(staffInfo -> {
//            this.updateById(staffInfo);
//        });
//        return true;
    }

过程 

staff_info表里,我通过sql把entry_time字段先设置成2,然后再通过代码设置成0,设置成2的时候一共有483条数据,然后通过代码修改的时候,我把number=0132791的数据设置成null,即更新这一条数据肯定会报错,通过debug我知道number=2这条数据在更新的list中处于index=141的位置,所以在number=0132791之后待更新的数据还有483-141=342条数据,如果是通过代码更新前

mybatisplus updatebatchbyid,mybatis-plus,java,开发语言

第一种情况: 不加@Transactional注解,使用updateById,一条一条数据更新

如下图:很明显,在报错位置之后的记录里都没有被更新,报错位置之前的都被更新了【报错之前已经提交了事务】 ,报错之后程序不再运行,故后边数据没更新

 mybatisplus updatebatchbyid,mybatis-plus,java,开发语言

第二种情况: 加@Transactional注解,使用updateById,一条一条数据更新 

 都没有被更新,因为加了事务之后,是在调用事务的方法上执行完成之后,才会提交事务,最终因为报错,方法没有执行完,所以事务没有被提交

mybatisplus updatebatchbyid,mybatis-plus,java,开发语言

第三种情况: 不加@Transactional注解,使用updateBatchById,批量更新

  都没有被更新,因为批量更新是开启了一个事务,然后统一提交,最后没提交成功

第四种情况: 加@Transactional注解,使用updateBatchById,批量更新 

和情况3相同,都没有被更新,全部回滚 文章来源地址https://www.toymoban.com/news/detail-532741.html

纯粹为了自己记录

到了这里,关于mybatis-plus使用updateBatchById小记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mybatis-plus分页total为0,分页失效,mybatis-plus多租户插件使用

    背景:项目使用mybatis分页插件不生效,以及多租户使用时读取配置异常 多租户插件使用遇到的问题: 最开始在MyTenantLineHandler中使用 @Value(\\\"${tables}\\\"),服务启动时能从配置中心拉取到配置,但在运行时获取到的值为空,试了很多方法都不生效,后面将配置中心的配置在调用My

    2024年02月06日
    浏览(41)
  • Mybatis-plus的使用

    Mybatis-plus的使用 一、简介 Mybatis-plus的基于mybatis的,简化了单表mybatis的操作。 注意:它并没有提升性能,只是简化了开发过程。 二、在springboot中的基本使用 1、导入依赖 2、添加相应的数据库配置(application.properties) 3、在Application类上添加dao接口的路径扫描 4、编写实体类

    2024年02月09日
    浏览(29)
  • Mybatis-plus框架使用配置

    MyBatis-Plus(简称 MP)是一个基于 MyBatis 的增强工具,它对 Mybatis 的基础功能进行了增强,但未做任何改变。使得我们可以可以在 Mybatis 开发的项目上直接进行升级为 Mybatis-plus,正如它对自己的定位,它能够帮助我们进一步简化开发过程,提高开发效率。 Mybatis-Plus 其实可以看

    2024年02月09日
    浏览(33)
  • Mybatis-Plus使用方法

    MyBatis-Plus 提供了丰富的增强版的 CRUD 方法,使得开发者能够更简洁、高效地进行数据库操作。以下是如何使用 MyBatis-Plus 自带的增强版 CRUD 方法的基本步骤: 添加依赖 首先,确保你的 Maven 项目中已经添加了 MyBatis-Plus 的相关依赖,包括核心依赖和数据库驱动依赖。 xml复制代

    2024年04月11日
    浏览(36)
  • mybatis-plus与mybatis同时使用别名问题

    在整合mybatis和mybatis-plus的时候发现一个小坑,单独使用mybatis,配置别名如下: XML映射文件如下: 单元测试发现没有问题 添加mybatis-plus依赖后,单元测试报错: 显示无法解析XML映射文件中的student 解决办法:要把配置文件里的别名配置改成mybatis-plus的配置,如下: 区别

    2024年04月13日
    浏览(27)
  • 使用Mybatis-plus清空表数据

    方法一:  方法二: 直接使用自带的remove接口 ,同时使用QueryWrapper参数如: 引申一下 Mybatis-plus这个好用的框架: 我们知道 MyBatis 是一个基于 java 的持久层框架,它内部封装了 jdbc,极大提高了我们的开发效率。 但是使用 Mybatis 开发也有很多痛点: 每个 Dao 接口都需要自己

    2023年04月09日
    浏览(28)
  • Mybatis-Plus 使用隐患,太坑了!

    作者:糊涂码 链接:https://juejin.cn/post/7156428078061895710 MP 从出现就一直有争议 感觉一直 都存在两种声音 很方便啊 通过函数自动拼接Sql 不需要去XML 再去使用标签 之前一分钟写好的Sql 现在一秒钟就能写好 简直不要太方便 侵入Service层 不好维护 可读性差 代码耦合 效率不行

    2024年02月05日
    浏览(73)
  • mybatis-plus的一些使用案例

    (1)需求分析 在创建和修改的时候,需要判断库名是否重复,而库名是全英文,所以要忽略字母大小写,大小写不同被认为是相同的字母 (2)解决思路 把数据库里的字段,还有要查的条件字段,都转成小写或者大写,然后再判断是否相同 (3)代码案例 (1)Api接口层 参数

    2024年02月13日
    浏览(28)
  • 使用Mybatis-Plus问题解答

    我们使用一个新的框架难免会遇到各种问题,当然使用这款国产的优秀的Mybatis-Plus框架也不例外,下面我就给大家列举一下使用Mybatis-Plus可能遇到的一些问题,并做一下一一的解答。 1:如何排除非表的字段 (这个问题一定要注意,我们Java中写的Entity类的属性是和表的字段一

    2024年02月08日
    浏览(30)
  • SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

    1.需求分析 2.数据库表设计 3.数据库环境配置 1.新建maven项目 2.pom.xml 引入依赖 3.application.yml 配置数据源 数据库名 用户名 密码 驱动是mysql8的(因为上面使用了版本仲裁) 4.Application.java 编写启动类 5.测试 6.配置类切换druid数据源 7.测试数据源是否成功切换 4.Mybatis基础配置 1

    2024年03月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包