## org.springframework.jdbc.core
Interface InterruptibleBatchPreparedStatementSetter

All Superinterfaces:
  BatchPreparedStatementSetter

All Known Implementing Classes:
  AbstractInterruptibleBatchPreparedStatementSetter

    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.

Since:
  2.0
Author:
  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

### isBatchExhausted

    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.

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