org.springframework.jdbc.core.support
Class AbstractInterruptibleBatchPreparedStatementSetter

java.lang.Object
  extended by 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(java.sql.PreparedStatement, int).

Since:
2.0
Author:
Juergen Hoeller
See Also:
setValuesIfAvailable(java.sql.PreparedStatement, int)

Constructor Summary
AbstractInterruptibleBatchPreparedStatementSetter()
           
 
Method Summary
 int getBatchSize()
          This implementation returns Integer.MAX_VALUE.
 boolean isBatchExhausted(int i)
          This implementation return this instance's current exhaustion flag.
 void setValues(PreparedStatement ps, int i)
          This implementation calls setValuesIfAvailable(java.sql.PreparedStatement, int) and sets this instance's exhaustion flag accordingly.
protected abstract  boolean setValuesIfAvailable(PreparedStatement ps, int i)
          Check for available values and set them on the given PreparedStatement.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractInterruptibleBatchPreparedStatementSetter

public AbstractInterruptibleBatchPreparedStatementSetter()
Method Detail

setValues

public final void setValues(PreparedStatement ps,
                            int i)
                     throws SQLException
This implementation calls setValuesIfAvailable(java.sql.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 a 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:
BatchPreparedStatementSetter.setValues(java.sql.PreparedStatement, int), setValuesIfAvailable(java.sql.PreparedStatement, int)

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 - 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 a SQLException is encountered (i.e. there is no need to catch SQLException)