Mybatis批量插入mysql插入自身sql语句太长

本文介绍了在遇到Mybatis批量插入MySQL时,由于SQL语句过长导致的错误。分析了两种可能的原因:字段长度限制和SQL语句长度限制。在生产环境中无法修改MySQL配置的情况下,提出了解决方案——通过分批插入来规避问题,具体实现借助了com.google.common.collect.Lists的partition方法。
摘要由CSDN通过智能技术生成

Mybatis批量插入mysql插入自身sql语句太长## 标题
1.报错

Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'directors' at row 8

在这里插入图片描述
2.原因有两种,1.字段的长度太短;2.mysql的sql语句过长:原因
3.解决如果是生产环境不能改mysql的,要分批插入,采用分而治之的方法
使用谷歌的com.google.common.collect.Lists#partition

List<Reptile> list = JSON.parseArray(json.toString(), Reptile.class);
                //mysql的sql语句太长会报错,采用分而治之的方法
                if (CollectionUtils.isNotEmpty(list)) {
                    final int pointsDataLimit = 100;
                    List<List<Reptile>> partitions = Lists.partition(list, pointsDataLimit);
                    for (List<Reptile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值