mybatis批量插入数据list超过一定长度时报错的解决办法(批量插入数据,数据过多时报错解决和批量修改报错

在使用MyBatis进行批量新增时,如果数据量较大,可以考虑分批次插入以减少数据库的负载压力。这里提供一种基于MyBatis的分批次插入的方法:

  1. 创建一个新的Mapper XML文件(例如:BatchInsertMapper.xml)来定义批量插入的SQL语句。在该XML文件中,添加如下内容:
<!-- 参数为List类型,使用foreach循环插入每个对象 -->
<insert id="batchInsert" parameterType="java.util.List">INSERT INTO your_table (column1, column2, ...)VALUES<foreach collection="list" item="item" separator=",">(#{item.property1}, #{item.property2}, ...)</foreach>
</insert>

 

请将上述代码中的your_table替换为你的目标表名,并根据实际情况指定要插入的列和属性。

        2.在对应的Mapper接口中声明批量插入的方法。添加如下代码:

public interface YourMapper {void batchInsert(List<YourEntity> entities);
}

 请将上述代码中的YourMapper替换为你的Mapper接口名和YourEntity替换为你的实体类名。

          3.在你的服务类或其他逻辑代码中,注入该Mapper并调用批量插入方法。例如:

@Autowired
private YourMapper yourMapper;public void batchInsertData(List<YourEntity> dataList) {int batchSize = 1000; // 指定每批次插入的数据量for (int i = 0; i < dataList.size(); i += batchSize) {int endIndex = Math.min(i + batchSize, dataList.size());List<YourEntity> batchList = dataList.subList(i, endIndex);yourMapper.batchInsert(batchList);}
}

实话实说优化效率嘎嘎的,看数据量的大小,如果每条数据的数据量很大,建议把batchSize改的小一点。

请将上述代码中的YourEntity替换为你的实体类名,并根据需要调整batchSize的大小。

这样,通过循环遍历将数据列表分割为批次,并调用批量插入的方法,就可以实现分批次插入的功能。

希望对你有所帮助!

如果说是批量修改报错,

eg:update d_access_history_page set line_name = ? where line_id = ? ; update d_access_page set line_name = ? where line_id = ? ;
这种报错,报错是因为没有开启批量更新,不开启批量更新只允许操作一条,想要批量操作就要在数据库配置文件中的url后边增加&allowMultiQueries=true(在数据的配置后面加上他eg:

mysql.db-name}?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true )

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/3031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scala学习(三)

2.8 浮点类型&#xff08;Float、Double&#xff09; Scala的浮点类型可以表示一个小数&#xff0c;比如123.4f&#xff0c;7.8&#xff0c;0.12等等。 1&#xff09;浮点型分类 数据类型 描述 Float [4] 32 位, IEEE 754标准的单精度浮点数 Double [8] 64 位 IEEE 754标准的双…

Vue 和 React 前端框架的比较

Vue 和 React 前端框架的比较 本文研究了流行的前端框架 Vue 和 React 之间的区别。通过对它们的学习曲线、视图层处理方式、组件化开发、响应式数据处理方式和生态系统及社区支持进行比较分析&#xff0c;得出了它们在不同方面的优劣和特点。该研究对于开发者在选择合适的前端…

Thread-local storage is not supported for the current target

xcode编译时遇到上述报错&#xff0c;解决办法&#xff1a;调整最低系统版本配置

Sql构建

Sql构建 SQL 构建对象介绍 之前通过注解开发时&#xff0c;相关 SQL 语句都是直接拼写的&#xff0c;一些关键字写起来比较麻烦、而且容易出错 MyBatis 提供了 org.apache.ibatis.jdbc.SQL 功能类&#xff0c;专门用于构建 SQL 语句 sql拼接测试&#xff1a; public class …

【MySQL】change buffer,buffer pool,redo log,bin log,undo log的作用

文章目录 Change BufferBuffer PoolRedo LogBin LogUndo Log这几个日志的协作流程 Change Buffer 当需要更新一个数据页时&#xff0c;如果数据页在内存中就直接更新&#xff0c;而如果这个数据页还没有在内存中的话&#xff0c;在不影响数据一致性的前提下&#xff0c;InnoDB…

请问如何用oracle触发器实现不允许新增/删除表/增加/减少/修改字段类型

请问如何用oracle触发器实现不允许新增/删除表/增加/减少/修改字段类型 给本帖投票 56211打赏收藏 分享 转发到动态举报 写回复 性能测试中发现oracle11g数据库每天22点,oralce进程CPU占用率突增>> 11 条回复 切换为时间正序 请发表友善的回复… 发表回复 microsof…

最新版本的OpenLens,有两个隐藏技能

最新版本的OpenLens v6.4.15&#xff0c;有两个隐藏技能 1、需要添加扩展插件alebcay/openlens-node-pod-menu&#xff0c;查看pod时才会出现进入命令行的按钮 2、测试环境查看pod、node时可能会出现监控数据未显示&#xff0c;点击集群的Setting&#xff0c;在Metrics里选…

软件测试用例的八大步骤你都知道吗?

目录 第一步、UI体验测试 第二步、功能完整性测试 第三步、业务流程测试 第四步、容错机制测试 第五步、常规性测试 第六步、性能测试 第七步、交互体验测试 第八步、兼容性测试 总结&#xff1a; 第一步、UI体验测试 1.风格、样式、颜色是否协调 2. 界面布局是否整齐、…

Linux和Shell笔记-2基本的bash shell命令

Linux文件系统及相关操作 与windows前面标明盘符不同&#xff0c;Linux采用了将文件存储在单个目录结构中&#xff0c;这个目录被称为虚拟目录。 Linux使用正斜线( / )而不是反斜线( \ ) 在文件路径中划分目录。Linux中反斜线用来标识转义字符&#xff0c;因此不能用在文件路…

【C++】开源:cpp-tbox百宝箱组件库

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍cpp-tbox百宝箱组件库。 无专精则不能成&#xff0c;无涉猎则不能通。。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;…

【大数据之Hive】二十五、HQL语法优化之小文件合并

1 优化说明 小文件优化可以从两个方面解决&#xff0c;在Map端输入的小文件合并&#xff0c;在Reduce端输出的小文件合并。 1.1 Map端输入文件合并 合并Map端输入的小文件是指将多个小文件分到同一个切片中&#xff0c;由一个Map Task处理&#xff0c;防止单个小文件启动一个M…

Jenkins (一)

Jenkins (一) Docker Jenkins 部署 一. 安装 jenkins $ mkdir -p /home/tester/data/docker/jenkins $ vim jenkins:lts-jdk11.sh./jenkins:lts-jdk11.sh 内容 #! /bin/bash mkdir -p /home/tester/data/docker/jenkins/jenkins_homesudo chown -R 1000:1000 /home/tester/da…

后端查询出的数据库数字自动补零和不补零

select CAST(YTD_CHANGE*100 as decimal(18,1)), round(YTD_CHANGE*100,1) from RP where data_date 20211231补零 round(PYTD_CHANGE_PER*100,1)不补零 CAST(PYTD_CHANGE_PER*100 as decimal(18,1))

PageHelper分页失效,只能查出第一页

PageHelper分页失效&#xff0c;只能查出第一页 1. 现象2. 原因3. PageHelper工作原理 1. 现象 分页代码如下&#xff1a; int pageId Constants.ONE;boolean isHasNextPage;do {PageHelper.startPage(pageId, Constants.DEFAULT_PAGE_SIZE);List<String> projectIdLi…

【SCI一区】【电动车】基于ADMM双层凸优化的燃料电池混合动力汽车研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 1.2 电动车动力学方程 1.3 电池模型 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、数据、文章讲解 &#x1f4a5;1 概述 文献来源&#xff1a; 随着车辆互联性的出现&#xff0c;互联汽车 (CVs) 在增强道路安全、改…

数学建模-图论 最短路径

作图 %% 注意&#xff1a;以下代码需要较新版本的matlab才能运行&#xff08;最好是2016版本及以上哦&#xff09; % 如果运行出错请下载新版的matlab代码再运行%% Matlab作无向图 % &#xff08;1&#xff09;无权重&#xff08;每条边的权重默认为1&#xff09; % 函数graph(…

ES(2)基本使用

文章目录 创建索引查询索引查询 shopping索引查询所有索引 删除索引数据操作添加查询查询指定id数据 查询所有数据修改完全覆盖局部修改 删除 复杂查询操作条件查询根据字段名和值查询对应数据全量查询分页查询显示指定字段排序查询 多条件查询must&#xff08;and&#xff09;…

spring复习:(29)MutablePropertyValues

该类通过成员变量 propertyValueList 来保存多个PropertyValue对象。 public class MutablePropertyValues implements PropertyValues, Serializable {private final List<PropertyValue> propertyValueList;Nullableprivate Set<String> processedProperties;pr…

SQL进阶(2)——SQL语句类型 增删改查CRUD 事务初步 表关联关系 视图 +索引

目录 引出SQL语句类型1.DML数据操纵语言&#xff08;重点&#xff09;2.DQL数据查询语言&#xff08;重点&#xff09;3.DDL(Data Definition Language了解)4.DCL(Data Control Language了解)5.TCL 事务控制语言 运算符和其他函数1.运算符2.其它函数增删改查CRUD 视图索引事务1…

基于Python的用户和项目协同过滤算法实现与解析——以余弦相似度和最近邻居为基础的推荐系统构建

基于Python的用户和项目协同过滤算法实现与解析——以余弦相似度和最近邻居为基础的推荐系统构建 摘要 本篇文章主要讲解如何使用Python来编写基于用户的协同过滤算法和基于项目的协同过滤算法。我们首先了解这两种协同过滤算法的概念和原理,接着通过Python代码实现这两种算…