Closed zhww9206 closed 3 months ago
没有什么问题,SUCCESS_NO_INFO代表”指示批处理语句已成功执行,但没有可用的受影响行数的计数的常量。“ 也就是这次saveBatch操作没有修改行数量,mp里面返回值是boolean类似insert和remove的方法false都代表的是没有行数修改,抛出异常才代表执行失败。
没有什么问题,SUCCESS_NO_INFO代表”指示批处理语句已成功执行,但没有可用的受影响行数的计数的常量。“ 也就是这次saveBatch操作没有修改行数量,mp里面返回值是boolean类似insert和remove的方法false都代表的是没有行数修改,抛出异常才代表执行失败。
但是3.5.7版本Db.saveBatch 无法正确判断批量插入是否成功, Db.updateBatchById却可以正常判断
3.5.6版本Db.saveBatch 是这样的
我用ruoyi-vue-plus最新代码测试, 批量插入也是数据库成功, 方法永远返回false
确实存在这个问题 插入已经成功了 但确实返回false
无法重现该问题,看看是不是 RuoyiPlus 配置什么批量操作引起的
能给个复现demo吗
解决方案: 驱动连接去掉 rewriteBatchedStatements=true
解决方案: 驱动连接去掉 rewriteBatchedStatements=true
以了解, 并已经去掉参数 测试成功
直接用BaseMapper#insert(java.util.Collection
经查实 mp最新的批处理与 jdbc的批处理参数 rewriteBatchedStatements=true 不兼容
我正在尝试兼容
当前使用版本 3.5.7 当前环境信息 Java21 + Mysql8.0.32 + springboot3.2.6
描述bug现象 在使用Db.saveBatch(entityList)时,执行成功 但是一直返回false
提供问题复现步骤 使用Db.saveBatch(entityList)进行批量插入 ` /**
提供完整堆栈日志(可选)
提供问题复现工程(可选) 请尽量提供复现工程,减少大家排错的时间.