Class AbstractInterruptibleBatchPreparedStatementSetter

java.lang.Object
org.springframework.jdbc.core.support.AbstractInterruptibleBatchPreparedStatementSetter
All Implemented Interfaces:
BatchPreparedStatementSetter, InterruptibleBatchPreparedStatementSetter

public abstract class AbstractInterruptibleBatchPreparedStatementSetter extends Object implements InterruptibleBatchPreparedStatementSetter
Abstract implementation of the InterruptibleBatchPreparedStatementSetter interface, combining the check for available values and setting of those into a single callback method setValuesIfAvailable(PreparedStatement, int).
Since:
2.0
Author:
Juergen Hoeller
See Also:
  • Constructor Details

    • AbstractInterruptibleBatchPreparedStatementSetter

      public AbstractInterruptibleBatchPreparedStatementSetter()
  • Method Details

    • setValues

      public final void setValues(PreparedStatement ps, int i) throws SQLException
      This implementation calls setValuesIfAvailable(PreparedStatement, int) and sets this instance's exhaustion flag accordingly.
      Specified by:
      setValues in interface BatchPreparedStatementSetter
      Parameters:
      ps - the PreparedStatement to invoke setter methods on
      i - index of the statement we're issuing in the batch, starting from 0
      Throws:
      SQLException - if an SQLException is encountered (i.e. there is no need to catch SQLException)
    • isBatchExhausted

      public final boolean isBatchExhausted(int i)
      This implementation return this instance's current exhaustion flag.
      Specified by:
      isBatchExhausted in interface InterruptibleBatchPreparedStatementSetter
      Parameters:
      i - index of the statement we're issuing in the batch, starting from 0
      Returns:
      whether the batch is already exhausted
      See Also:
    • getBatchSize

      public int getBatchSize()
      This implementation returns Integer.MAX_VALUE. Can be overridden in subclasses to lower the maximum batch size.
      Specified by:
      getBatchSize in interface BatchPreparedStatementSetter
      Returns:
      the number of statements in the batch
    • setValuesIfAvailable

      protected abstract boolean setValuesIfAvailable(PreparedStatement ps, int i) throws SQLException
      Check for available values and set them on the given PreparedStatement. If no values are available anymore, return false.
      Parameters:
      ps - the PreparedStatement we'll invoke setter methods on
      i - index of the statement we're issuing in the batch, starting from 0
      Returns:
      whether there were values to apply (that is, whether the applied parameters should be added to the batch and this method should be called for a further iteration)
      Throws:
      SQLException - if an SQLException is encountered (i.e. there is no need to catch SQLException)