| java.lang.Object org.springframework.jdbc.object.RdbmsOperation org.springframework.jdbc.object.SqlOperation org.springframework.jdbc.object.SqlUpdate org.springframework.jdbc.object.BatchSqlUpdate
BatchSqlUpdate | public class BatchSqlUpdate extends SqlUpdate (Code) | | 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, or call reset before
reuse within the same thread.
author: Keith Donald author: Juergen Hoeller since: 1.1 See Also: BatchSqlUpdate.flush See Also: BatchSqlUpdate.reset |
Field Summary | |
public static int | DEFAULT_BATCH_SIZE Default number of inserts to accumulate before commiting a batch (5000). |
Constructor Summary | |
public | BatchSqlUpdate() Constructor to allow use as a JavaBean. | public | BatchSqlUpdate(DataSource ds, String sql) Construct an update object with a given DataSource and SQL. | public | BatchSqlUpdate(DataSource ds, String sql, int[] types) Construct an update object with a given DataSource, SQL
and anonymous parameters. | public | 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 | |
public int[] | flush() Trigger any queued update operations to be added as a final batch. | public int | getExecutionCount() Return the number of already executed statements. | public int | getQueueCount() Return the current number of statements or statement parameters
in the queue. | public int[] | getRowsAffected() Return the number of affected rows for all already executed statements. | public void | reset() Reset the statement parameter queue, the rows affected cache,
and the execution count. | public void | setBatchSize(int batchSize) Set the number of statements that will trigger an automatic intermediate
flush. | public void | setTrackRowsAffected(boolean trackRowsAffected) Set whether to track the rows affected by batch updates performed
by this operation object.
Default is "true". | protected boolean | supportsLobParameters() BatchSqlUpdate does not support BLOB or CLOB parameters. | public int | update(Object[] params) Overridden version of update that adds the given statement
parameters to the queue rather than executing them immediately. |
DEFAULT_BATCH_SIZE | public static int DEFAULT_BATCH_SIZE(Code) | | Default number of inserts to accumulate before commiting a batch (5000).
|
BatchSqlUpdate | public BatchSqlUpdate(DataSource ds, String sql)(Code) | | Construct an update object with a given DataSource and SQL.
Parameters: ds - DataSource to use to obtain connections Parameters: sql - SQL statement to execute |
BatchSqlUpdate | public BatchSqlUpdate(DataSource ds, String sql, int[] types)(Code) | | Construct an update object with a given DataSource, SQL
and anonymous parameters.
Parameters: ds - DataSource to use to obtain connections Parameters: sql - SQL statement to execute Parameters: types - SQL types of the parameters, as defined in thejava.sql.Types class See Also: java.sql.Types |
BatchSqlUpdate | public BatchSqlUpdate(DataSource ds, String sql, int[] types, int batchSize)(Code) | | Construct an update object with a given DataSource, SQL,
anonymous parameters and specifying the maximum number of rows
that may be affected.
Parameters: ds - DataSource to use to obtain connections Parameters: sql - SQL statement to execute Parameters: types - SQL types of the parameters, as defined in thejava.sql.Types class Parameters: batchSize - the number of statements that will triggeran automatic intermediate flush See Also: java.sql.Types |
flush | public int[] flush()(Code) | | Trigger any queued update operations to be added as a final batch.
an array of the number of rows affected by each statement |
getExecutionCount | public int getExecutionCount()(Code) | | Return the number of already executed statements.
|
getQueueCount | public int getQueueCount()(Code) | | Return the current number of statements or statement parameters
in the queue.
|
getRowsAffected | public int[] getRowsAffected()(Code) | | Return the number of affected rows for all already executed statements.
Accumulates all of flush 's return values until
reset is invoked.
an array of the number of rows affected by each statement See Also: BatchSqlUpdate.reset |
reset | public void reset()(Code) | | Reset the statement parameter queue, the rows affected cache,
and the execution count.
|
setBatchSize | public void setBatchSize(int batchSize)(Code) | | Set the number of statements that will trigger an automatic intermediate
flush. update calls or 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.
|
setTrackRowsAffected | public void setTrackRowsAffected(boolean trackRowsAffected)(Code) | | Set whether to track the rows affected by batch updates performed
by this operation object.
Default is "true". Turn this off to save the memory needed for
the list of row counts.
See Also: BatchSqlUpdate.getRowsAffected() |
supportsLobParameters | protected boolean supportsLobParameters()(Code) | | BatchSqlUpdate does not support BLOB or CLOB parameters.
|
update | public int update(Object[] params) throws DataAccessException(Code) | | Overridden version of 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.
Parameters: params - array of parameter objects the number of rows affected by the update (always -1,meaning "not applicable", as the statement is not actuallyexecuted by this method) See Also: BatchSqlUpdate.flush |
Fields inherited from org.springframework.jdbc.object.RdbmsOperation | final protected Log logger(Code)(Java Doc)
|
|
|