Interface InterruptibleBatchPreparedStatementSetter

All Superinterfaces:
All Known Implementing Classes:

public interface InterruptibleBatchPreparedStatementSetter
extends BatchPreparedStatementSetter

Extension of the BatchPreparedStatementSetter interface, adding a batch exhaustion check.

This interface allows you to signal the end of a batch rather than having to determine the exact batch size upfront. Batch size is still being honored but it is now the maximum size of the batch.

The isBatchExhausted(int) method is called after each call to BatchPreparedStatementSetter.setValues(java.sql.PreparedStatement, int) to determine whether there were some values added, or if the batch was determined to be complete and no additional values were provided during the last call to setValues.

Consider extending the AbstractInterruptibleBatchPreparedStatementSetter base class instead of implementing this interface directly, using a single setValuesIfAvailable callback method that checks for available values and sets them, returning whether values have actually been provided.

Thomas Risberg, Juergen Hoeller
See Also:
JdbcTemplate.batchUpdate(String, BatchPreparedStatementSetter), AbstractInterruptibleBatchPreparedStatementSetter

Method Summary
 boolean isBatchExhausted(int i)
          Return whether the batch is complete, that is, whether there were no additional values added during the last setValues call.
Methods inherited from interface org.springframework.jdbc.core.BatchPreparedStatementSetter
getBatchSize, setValues

Method Detail


boolean isBatchExhausted(int i)
Return whether the batch is complete, that is, whether there were no additional values added during the last setValues call.

NOTE: If this method returns true, any parameters that might have been set during the last setValues call will be ignored! Make sure that you set a corresponding internal flag if you detect exhaustion at the beginning of your setValues implementation, letting this method return true based on the flag.

i - index of the statement we're issuing in the batch, starting from 0
whether the batch is already exhausted
See Also:
BatchPreparedStatementSetter.setValues(java.sql.PreparedStatement, int), AbstractInterruptibleBatchPreparedStatementSetter.setValuesIfAvailable(java.sql.PreparedStatement, int)