|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.springframework.jdbc.object.RdbmsOperation
org.springframework.jdbc.object.SqlOperation
org.springframework.jdbc.object.SqlUpdate
org.springframework.jdbc.object.BatchSqlUpdate
SqlUpdate subclass that performs batch update operations. Encapsulates
queuing up records to be updated, and adds them as a single batch once
flush is called or the given batch size has been met.
Note that this class is a non-thread-safe object, in contrast
to all other JDBC operations objects in this package. You need to create
a new instance of it for each use, respectively call reset
before reuse within the same thread.
flush(),
reset()| Field Summary | |
static int |
DEFAULT_BATCH_SIZE
Default number of inserts to accumulate before commiting a batch (5000). |
| Fields inherited from class org.springframework.jdbc.object.RdbmsOperation |
logger |
| Constructor Summary | |
BatchSqlUpdate()
Constructor to allow use as a JavaBean. |
|
BatchSqlUpdate(DataSource ds,
String sql)
Construct an update object with a given DataSource and SQL. |
|
BatchSqlUpdate(DataSource ds,
String sql,
int[] types)
Construct an update object with a given DataSource, SQL and anonymous parameters. |
|
BatchSqlUpdate(DataSource ds,
String sql,
int[] types,
int batchSize)
Construct an update object with a given DataSource, SQL, anonymous parameters and specifying the maximum number of rows that may be affected. |
|
| Method Summary | |
int[] |
flush()
Trigger any queued update operations to be added as a final batch. |
int |
getExecutionCount()
Return the number of already executed statements. |
int |
getQueueCount()
Return the current number of statements respectively statement parameters in the queue. |
int[] |
getRowsAffected()
Return the number of affected rows for all already executed statements. |
void |
reset()
Reset the statement parameter queue, the rows affected cache, and the execution count. |
void |
setBatchSize(int batchSize)
Set the number of statements that will trigger an automatic intermediate flush. |
protected boolean |
supportsLobParameters()
BatchSqlUpdate does not support BLOB or CLOB parameters. |
int |
update(Object[] args)
Overridden version of update that adds the given statement
parameters to the queue rather than executing them immediately.
|
| Methods inherited from class org.springframework.jdbc.object.SqlUpdate |
checkRowsAffected, setMaxRowsAffected, setRequiredRowsAffected, update, update, update, update, update, update, update, update |
| Methods inherited from class org.springframework.jdbc.object.SqlOperation |
compileInternal, newPreparedStatementCreator, newPreparedStatementSetter, onCompileInternal |
| Methods inherited from class org.springframework.jdbc.object.RdbmsOperation |
afterPropertiesSet, compile, declareParameter, getDeclaredParameters, getGeneratedKeysColumnNames, getJdbcTemplate, getResultSetType, getSql, isCompiled, isReturnGeneratedKeys, isUpdatableResults, setDataSource, setGeneratedKeysColumnNames, setJdbcTemplate, setResultSetType, setReturnGeneratedKeys, setSql, setTypes, setUpdatableResults, validateParameters |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static int DEFAULT_BATCH_SIZE
| Constructor Detail |
public BatchSqlUpdate()
public BatchSqlUpdate(DataSource ds,
String sql)
ds - DataSource to use to obtain connectionssql - SQL statement to execute
public BatchSqlUpdate(DataSource ds,
String sql,
int[] types)
ds - DataSource to use to obtain connectionssql - SQL statement to executetypes - anonymous parameter declarations
public BatchSqlUpdate(DataSource ds,
String sql,
int[] types,
int batchSize)
ds - DataSource to use to obtain connectionssql - SQL statement to executetypes - anonymous parameter declarations.batchSize - the number of statements that will trigger
an automatic intermediate flush| Method Detail |
public void setBatchSize(int batchSize)
update calls respectively the given statement
parameters will be queued until the batch size is met, at which point
it will empty the queue and execute the batch.
You can also flush already queued statements with an explicit
flush call. Note that you need to this after queueing
all parameters to guarantee that all statements have been flushed.
protected boolean supportsLobParameters()
supportsLobParameters in class RdbmsOperation
public int update(Object[] args)
throws DataAccessException
update that adds the given statement
parameters to the queue rather than executing them immediately.
All other update methods of the SqlUpdate base class go
through this method and will thus behave similarly.
You need to call flush to actually execute the batch.
If the specified batch size is reached, an implicit flush will happen;
you still need to finally call flush to flush all statements.
update in class SqlUpdateargs - array of object arguments
DataAccessExceptionflush()public int[] flush()
public int getQueueCount()
public int getExecutionCount()
public int[] getRowsAffected()
flush's return values until
reset is invoked.
reset()public void reset()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||