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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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)`