类 BatchSqlUpdate
- java.lang.Object
- org.springframework.jdbc.object.RdbmsOperation
- org.springframework.jdbc.object.SqlOperation
- org.springframework.jdbc.object.SqlUpdate
- org.springframework.jdbc.object.BatchSqlUpdate
- 所有已实现的接口:
InitializingBean
public class BatchSqlUpdate extends SqlUpdate
SqlUpdate subclass that performs batch update operations. Encapsulates queuing up records to be updated, and adds them as a single batch onceflush
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.
字段概要
字段 修饰符和类型 字段 说明 static int
DEFAULT_BATCH_SIZE
Default number of inserts to accumulate before committing a batch (5000).从类继承的字段 org.springframework.jdbc.object.RdbmsOperation
logger
构造器概要
构造器 构造器 说明 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.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 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 or 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.void
setTrackRowsAffected(boolean trackRowsAffected)
Set whether to track the rows affected by batch updates performed by this operation object.protected boolean
supportsLobParameters()
BatchSqlUpdate does not support BLOB or CLOB parameters.int
update(Object... params)
Overridden version ofupdate
that adds the given statement parameters to the queue rather than executing them immediately.从类继承的方法 org.springframework.jdbc.object.SqlUpdate
checkRowsAffected, setMaxRowsAffected, setRequiredRowsAffected, update, update, update, update, update, update, update, update, updateByNamedParam, updateByNamedParam
从类继承的方法 org.springframework.jdbc.object.SqlOperation
compileInternal, getParsedSql, newPreparedStatementCreator, newPreparedStatementCreator, newPreparedStatementSetter, onCompileInternal
从类继承的方法 org.springframework.jdbc.object.RdbmsOperation
afterPropertiesSet, allowsUnusedParameters, checkCompiled, compile, declareParameter, getDeclaredParameters, getGeneratedKeysColumnNames, getJdbcTemplate, getResultSetType, getSql, isCompiled, isReturnGeneratedKeys, isUpdatableResults, setDataSource, setFetchSize, setGeneratedKeysColumnNames, setJdbcTemplate, setMaxRows, setParameters, setQueryTimeout, setResultSetType, setReturnGeneratedKeys, setSql, setTypes, setUpdatableResults, validateNamedParameters, validateParameters
字段详细资料
DEFAULT_BATCH_SIZE
public static final int DEFAULT_BATCH_SIZE
Default number of inserts to accumulate before committing a batch (5000).- 另请参阅:
- 常量字段值
构造器详细资料
BatchSqlUpdate
public BatchSqlUpdate()
Constructor to allow use as a JavaBean. DataSource and SQL must be supplied before compilation and use.
BatchSqlUpdate
public BatchSqlUpdate(DataSource ds, String sql)
Construct an update object with a given DataSource and SQL.- 参数:
ds
- DataSource to use to obtain connectionssql
- SQL statement to execute
BatchSqlUpdate
public BatchSqlUpdate(DataSource ds, String sql, int[] types)
Construct an update object with a given DataSource, SQL and anonymous parameters.- 参数:
ds
- DataSource to use to obtain connectionssql
- SQL statement to executetypes
- SQL types of the parameters, as defined in thejava.sql.Types
class- 另请参阅:
Types
BatchSqlUpdate
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.- 参数:
ds
- DataSource to use to obtain connectionssql
- SQL statement to executetypes
- SQL types of the parameters, as defined in thejava.sql.Types
classbatchSize
- the number of statements that will trigger an automatic intermediate flush- 另请参阅:
Types
方法详细资料
setBatchSize
public void setBatchSize(int batchSize)
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)
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.
- 另请参阅:
getRowsAffected()
supportsLobParameters
protected boolean supportsLobParameters()
BatchSqlUpdate does not support BLOB or CLOB parameters.
update
public int update(Object... params) throws DataAccessException
Overridden version ofupdate
that adds the given statement parameters to the queue rather than executing them immediately. All otherupdate
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 callflush
to flush all statements.- 覆盖:
update
在类中SqlUpdate
- 参数:
params
- array of parameter objects- 返回:
- the number of rows affected by the update (always -1, meaning "not applicable", as the statement is not actually executed by this method)
- 抛出:
DataAccessException
- 另请参阅:
flush()
flush
public int[] flush()
Trigger any queued update operations to be added as a final batch.- 返回:
- an array of the number of rows affected by each statement
getQueueCount
public int getQueueCount()
Return the current number of statements or statement parameters in the queue.
getExecutionCount
public int getExecutionCount()
Return the number of already executed statements.
getRowsAffected
public int[] getRowsAffected()
Return the number of affected rows for all already executed statements. Accumulates all offlush
's return values untilreset
is invoked.- 返回:
- an array of the number of rows affected by each statement
- 另请参阅:
reset()
reset
public void reset()
Reset the statement parameter queue, the rows affected cache, and the execution count.