java - 使用 PreparedStatement 时 executeBatch() 和 executeLargeBatch() 之间的区别

标签 java sql batch-processing

我对何时使用 executeBatch()executeLargeBatch() 感到困惑。 我浏览了 Java 文档,发现的唯一区别是:

executeLargeBatch() should be used when the returned row count may exceed Integer.MAX_VALUE.

我用 executeLargeBatch() 替换了 executeBatch() 但没有发现任何性能改进。

处理 Integer.MAX_VALUE 是唯一的目的吗?两者之间有什么性能优势吗?

最佳答案

您引用的差异差异:executeBatch returns int[] 返回每次更新的计数。 executeLargeBatch returns long[] 返回每次更新的计数。因此文档说如果计数可能超过 int 的容量则使用后者。例如,它们是 executeUpdate 的批处理等价物(返回 int)和 executeLargeUpdate (返回 long)。

我不希望有任何显着的性能差异;如果您可能更新超过 2,147,483,647 行,这只是一个不溢出 int 的问题。

关于java - 使用 PreparedStatement 时 executeBatch() 和 executeLargeBatch() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28983541/

相关文章:

unix - 批量替换文本文件中的文本(Linux/OSX 命令行)

mysql - PHPMyAdmin/MySQL 导出表说明

sql - T-SQL : How to use parameters in dynamic SQL?

java - 在 JScrollPane 上设置滚动条

java - 如何让按键触发的事件只发生一次?

sql - 将 SQL 查询中的多个值存储到存储过程变量

Windows CMD 批处理脚本 FFmpeg

file - 如何在批处理脚本中读取文件的最后两行

Java 使用 MainWindow 函数

java - Android Studio 中的秒表按钮崩溃