当前位置: 首页 > news >正文

Mybatis 之批量处理

该内容参考于 MybatisPlus 的批量操作方法

通过继承 MybatisPlus 的 ServiceImpl 来获取 SqlSession (实际上可以通过其他方式获取,因为使用了 MybatisPlus,所以就拿来直接用了),然后获取 Mapper 执行对应的方法,然后执行 flushStatements() 发送到数据库吗,代码如下

public void invalidProcessBatch(List<HcPassRecords> list) {Assert.notEmpty(list, "error: entityList must not be empty", new Object[0]);SqlSession batchSqlSession = this.sqlSessionBatch();Throwable throwable = null;try {int i = 0;for(Iterator<HcPassRecords> iteratored = list.iterator(); iteratored.hasNext(); ++i) {HcPassRecords hcPassRecords = iteratored.next();// 获取 MapperHcPassRecordsProcessMapper sqlSessionMapper = batchSqlSession.getMapper(HcPassRecordsProcessMapper.class);// 执行方法sqlSessionMapper.invalidProcess(hcPassRecords.getPassRecordsId(), TrucksNodeType.PARK_OUT.getName(), PassRecordConstant.PROCESS_INVALID);if (i >= 1 && i % 1000 == 0) {// 这里是没循环 1000 次,发送到数据库一次batchSqlSession.flushStatements();}}batchSqlSession.flushStatements();} catch (Throwable e) {throwable = e;throw e;} finally {if (batchSqlSession != null) {if (throwable != null) {try {batchSqlSession.close();} catch (Throwable var16) {throwable.addSuppressed(var16);}} else {batchSqlSession.close();}}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • OpenResty使用Lua笔记
  • 题解|2023暑期杭电多校02
  • 关键路径-matlab
  • 【BUG】已解决:IndexError: list index out of range
  • 今日科技圈最新时事新闻(2024年7月12日
  • C++——类和对象(下)
  • k8s入门:从安装到实际应用
  • 【Linux杂货铺】期末总结篇3:用户账户管理命令 | 组账户管理命令
  • redis-缓存三剑客
  • FreeRTOS的中断管理、临界资源保护、任务调度
  • 2024CAIP省赛
  • 【吊打面试官系列-ZooKeeper面试题】简述 Zookeeper 文件系统?
  • 安全运营概述
  • 【学习】美国虚拟信用卡申请流程
  • 【解决】多个网卡导致nacos注册的服务ip有误问题
  • [PHP内核探索]PHP中的哈希表
  • 5、React组件事件详解
  • ECS应用管理最佳实践
  • Git初体验
  • Mithril.js 入门介绍
  • Selenium实战教程系列(二)---元素定位
  • Spring Boot MyBatis配置多种数据库
  • SQL 难点解决:记录的引用
  • vue的全局变量和全局拦截请求器
  • Yii源码解读-服务定位器(Service Locator)
  • 二维平面内的碰撞检测【一】
  • 搞机器学习要哪些技能
  • 将回调地狱按在地上摩擦的Promise
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • # SpringBoot 如何让指定的Bean先加载
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • $.each()与$(selector).each()
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (rabbitmq的高级特性)消息可靠性
  • (八)Flink Join 连接
  • (六)vue-router+UI组件库
  • (生成器)yield与(迭代器)generator
  • (十)Flink Table API 和 SQL 基本概念
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)创业的注意事项
  • .equals()到底是什么意思?
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Core 项目指定SDK版本
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .net 托管代码与非托管代码
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • [100天算法】-不同路径 III(day 73)
  • [2016.7 day.5] T2
  • [30期] 我的学习方法
  • [Android]一个简单使用Handler做Timer的例子
  • [Angular] 笔记 18:Angular Router
  • [C#]winform部署PaddleOCRV3推理模型
  • [C/C++]数据结构----顺序表的实现(增删查改)