2015-03-11 3 views
1

Я смущен, когда следует использовать executeBatch() и executeLargeBatch(). Я прошел через документы Java и единственная разница я нашел:Разница между executeBatch() и executeLargeBatch() при использовании PreparedStatement

executeLargeBatch() следует использовать, когда возвращаемый количество строк может превышать Integer.MAX_VALUE.

Я заменил executeBatch() на executeLargeBatch(), но не нашли улучшения.

Работает только Integer.MAX_VALUE? Есть ли преимущество в производительности над другим?

+0

Я нашел этот вопрос полезным, потому что легко упустить текст, указанный в вопросе, и разницу в типах возвратов. – antak

ответ

8

Ваш цитируемый разница является разница: executeBatch возвращает int[] вернуть счетчики каждого обновления. executeLargeBatch возвращает long[], чтобы вернуть счет каждого обновления. Следовательно, документация говорит использовать последний, если счетчик может превышать емкость int. Например, они представляют собой эквиваленты партии executeUpdate (возвращает int) и executeLargeUpdate (возвращает long).

Я бы не ожидал разницы в производительности любого значения; это просто вопрос не переполнения int, если вы потенциально обновляете более 2 147 483 647 строк.

+0

, и я думаю, что не будет повышения производительности, если мы будем использовать 'executeLargeBatch' в тех местах, где мы можем использовать' executeBatch' –

+0

Спасибо T.J. Crowder !!! – tkfwr

Смежные вопросы