批量修改数据进行分批处理
数据库批量修改数据时,如果一次修改数据量很大时,可能会造成阻塞。可以通过List subList(int fromIndex, int toIndex) 方法进行对list进行截取操作。其中subList(int fromIndex, int toIndex)取值包含fromIndex,不包含toIndex。例如subList(0, 5) 会截取到 下标是0-4的数据,下标未5的数据不会截取。
public void batchUpdate(List<TcEmployee> tcEmployeeList) throws Exception {if (CollectionUtils.isEmpty(tcEmployeeList)) {return;}// 进行分页批量执行,防止一次update数据太多造成阻塞执行失败int size = tcEmployeeList.size();//按照200条一次进行拆分,计算需要运行的次数int runNumber = size % 200 == 0 ? size / 200 : (size / 200) + 1;log.info("批量处理数据size:{},运行总次数:{}", size, runNumber);for (int i = 1; i <= runNumber; i++) {int startIndex = (i - 1) * 200;int endIndex = i == runNumber ? size : 200 * i;log.info("运行批次:" + i + ",List-index:" + 200 * (i - 1) + "-" + endIndex);List<TcEmployee> subList = tcEmployeeList.subList((i - 1) * 200, endIndex);tcEmployeeMapper.batchUpdate(subList);}}
批量处理数据size:1281,运行总次数:7运行批次:1,List-index:0-200运行批次:2,List-index:200-400运行批次:3,List-index:400-600运行批次:4,List-index:600-800运行批次:5,List-index:800-1000运行批次:6,List-index:1000-1200运行批次:7,List-index:1200-1281
批量修改数据进行分批处理相关推荐
- 【RecyclerView】 十二、RecyclerView 数据更新 ( 修改单条数据 | 批量修改数据 )
文章目录 一.修改单条数据 二.批量修改数据 三.完整代码示例 四.RecyclerView 相关资料 一.修改单条数据 修改单条数据 : 调用 RecyclerView.Adapter 的 void ...
- 7.3 MASS批量修改数据(Excel文件上传数据)
7.3 MASS批量修改数据(Excel文件上传数据) 步骤1:输入事务码MASS进入 1处,输入需要修改的对象类型(参见对象类型清单) 2处,点击"执行"按钮 步骤2:选择需要修 ...
- 7.2 MASS批量修改数据(剪切板上传数据)
7.2 MASS批量修改数据(剪切板上传数据) 步骤1:输入事务码MASS进入 1处,输入需要修改的对象类型(参见对象类型清单) 2处,点击"执行"按钮 步骤2:选择需要修改的表和 ...
- 【MyBatis动态SQL批量修改数据出现报错问题】
MyBatis动态SQL批量修改数据出现报错问题 MyBatis动态SQL批量修改数据出现报错问题 问题描述 XML文件中的动态SQL 执行结果 测试执行 报错日志 解决 原数据库URL 修改后数据库 ...
- mysql之批量修改数据
文章目录 1. 对于某个字段,批量修改数据的方式 2. jdbc中批量插入数据的方式 2.1 jdbc中标准插入多条数据的方式 2.2 jdbc中批量插入多条数据的方式 1. 对于某个字段,批量修改数 ...
- update 批量修改数据
update 批量修改数据 更新同一张的数据表,将父ID赋值为对应的ID(根据父编码等于部门编码) update dept2 set parentdeptId=dept1.ID from BO_BY_ ...
- 批量修改数据映射_Docker 数据卷操作「Docker 系列-6」
数据卷入门 在前面的案例中,如果我们需要将数据从宿主机拷贝到容器中,一般都是使用 Docker 的拷贝命令,这样性能还是稍微有点差,没有办法能够达到让这种拷贝达到本地磁盘 I/O 性能呢?有! 数据卷 ...
- mysql所有的编码_MySQL 批量修改数据表编码及字符集
当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改.以下备注批量修改方案( 以修改为 utf8mb4_bin 为例,注意将 db_name 换为真实的数据库名 ). 1. ...
- MySQL批量修改数据
注:之前写批量修改,都是先将数据查询出来之后,再进行批量修改,如: UPDATE `xuer_info`SET userlevel = ( CASE idWHEN 1 THEN '低级'WHEN 2 ...
最新文章
- 后台参数验证的几种方式
- mysql 查询表总行数字段_mysql中怎么查询表中的字段个数
- Oracle存储过程和自定义函数
- 中班游戏电子计算机,幼儿园中班数学游戏:小小快递员
- Centos7换yum源
- Solaris11 磁盘分区
- 计科1高雨妍作业(2)
- [BZOJ5302][HAOI2018]奇怪的背包(DP)
- JAVA构造方法与构造方法的执行原理简单理解(栈与堆)
- 通过poi导出带图片的Excel表格
- python生成Excel透视表
- formula 返回list_如何在Hibernate / JPA中使用@Formula
- 借助方便的工具平台,让App制作变简单
- [英语] It_be_XXX_that_YYY强调句句式
- android 图片跑马灯动画,【Android自定义View】- 文本跑马灯效果
- 长篇分享腾讯工作的环境、待遇等
- 改进的booth编码实例
- 1 分钟抗住 10 亿请求!某些 App 怎么做到的?
- 支持ipv6的各种服务器和客户端
- css calc()函数 动态根据屏幕宽度计算宽度