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 theInterruptibleBatchPreparedStatementSetter
interface, combining the check for available values and setting of those into a single callback methodsetValuesIfAvailable(java.sql.PreparedStatement, int)
.- Since:
- 2.0
- Author:
- Juergen Hoeller
- See Also:
setValuesIfAvailable(java.sql.PreparedStatement, int)
Constructor Summary
Constructors Constructor Description AbstractInterruptibleBatchPreparedStatementSetter()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description int
getBatchSize()
This implementation returnsInteger.MAX_VALUE
.boolean
isBatchExhausted(int i)
This implementation return this instance's current exhaustion flag.void
setValues(PreparedStatement ps, int i)
This implementation callssetValuesIfAvailable(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.
Constructor Detail
AbstractInterruptibleBatchPreparedStatementSetter
public AbstractInterruptibleBatchPreparedStatementSetter()
Method Detail
setValues
public final void setValues(PreparedStatement ps, int i) throws SQLException
This implementation callssetValuesIfAvailable(java.sql.PreparedStatement, int)
and sets this instance's exhaustion flag accordingly.- Specified by:
setValues
in interfaceBatchPreparedStatementSetter
- Parameters:
ps
- the PreparedStatement to invoke setter methods oni
- 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 interfaceInterruptibleBatchPreparedStatementSetter
- 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 returnsInteger.MAX_VALUE
. Can be overridden in subclasses to lower the maximum batch size.- Specified by:
getBatchSize
in interfaceBatchPreparedStatementSetter
- 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, returnfalse
.- Parameters:
ps
- PreparedStatement we'll invoke setter methods oni
- 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)