我对何时使用 executeBatch()
和 executeLargeBatch()
感到困惑。
我浏览了 Java 文档,发现的唯一区别是:
executeLargeBatch()
should be used when the returned row count may exceedInteger.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/