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

tkf*_*fwr 4 java sql batch-processing

我很困惑何时使用executeBatch()executeLargeBatch().我浏览了Java文档,我找到的唯一区别是:

executeLargeBatch()应该在返回的行数超过时使用Integer.MAX_VALUE.

我换executeBatch()executeLargeBatch()但没有找到任何性能改进.

处理Integer.MAX_VALUE的唯一目的是什么?一个是否有任何性能优势?

T.J*_*der 12

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

我不希望任何重要的表现差异; int如果您可能更新超过2,147,483,647行,那只是不会溢出的问题.