Package groovy.sql
Class BatchingStatementWrapper
java.lang.Object
groovy.lang.GroovyObjectSupport
groovy.sql.BatchingStatementWrapper
- All Implemented Interfaces:
GroovyObject
,java.lang.AutoCloseable
- Direct Known Subclasses:
BatchingPreparedStatementWrapper
public class BatchingStatementWrapper extends GroovyObjectSupport implements java.lang.AutoCloseable
Class which delegates to a Statement but keeps track of a batch count size.
If the batch count reaches the predefined number, this Statement does an executeBatch()
automatically. If batchSize is zero, then no batching is performed.
-
Field Summary
Fields Modifier and Type Field Description protected int
batchCount
protected int
batchSize
protected java.util.logging.Logger
log
protected java.util.List<java.lang.Integer>
results
-
Constructor Summary
Constructors Constructor Description BatchingStatementWrapper(java.sql.Statement delegate, int batchSize, java.util.logging.Logger log)
-
Method Summary
Modifier and Type Method Description void
addBatch(java.lang.String sql)
void
clearBatch()
void
close()
int[]
executeBatch()
protected void
incrementBatchCount()
Increments batch count (after addBatch(..) has been called) and executedelegate.executeBatch()
if batchSize has been reached.java.lang.Object
invokeMethod(java.lang.String name, java.lang.Object args)
Invokes the given method.protected void
processResult(int[] lastResult)
protected void
reset()
Methods inherited from class groovy.lang.GroovyObjectSupport
getMetaClass, setMetaClass
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface groovy.lang.GroovyObject
getProperty, setProperty
-
Field Details
-
batchSize
protected int batchSize -
batchCount
protected int batchCount -
log
protected java.util.logging.Logger log -
results
protected java.util.List<java.lang.Integer> results
-
-
Constructor Details
-
BatchingStatementWrapper
public BatchingStatementWrapper(java.sql.Statement delegate, int batchSize, java.util.logging.Logger log)
-
-
Method Details
-
reset
protected void reset() -
invokeMethod
public java.lang.Object invokeMethod(java.lang.String name, java.lang.Object args)Description copied from interface:GroovyObject
Invokes the given method.- Specified by:
invokeMethod
in interfaceGroovyObject
- Parameters:
name
- the name of the method to callargs
- the arguments to use for the method call- Returns:
- the result of invoking the method
-
addBatch
public void addBatch(java.lang.String sql) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
incrementBatchCount
protected void incrementBatchCount() throws java.sql.SQLExceptionIncrements batch count (after addBatch(..) has been called) and executedelegate.executeBatch()
if batchSize has been reached.- Throws:
java.sql.SQLException
-
clearBatch
public void clearBatch() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
executeBatch
public int[] executeBatch() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
processResult
protected void processResult(int[] lastResult) -
close
public void close() throws java.sql.SQLException- Specified by:
close
in interfacejava.lang.AutoCloseable
- Throws:
java.sql.SQLException
-