public class BatchSqlUpdate extends SqlUpdate
flush
が呼び出されるか、指定されたバッチサイズに達すると、単一のバッチとして追加します。 このパッケージの他のすべての JDBC 操作オブジェクトとは対照的に、このクラスはスレッドセーフではないオブジェクトであることに注意してください。使用するたびに新しいインスタンスを作成するか、同じスレッド内で再利用する前に reset
を呼び出す必要があります。
修飾子と型 | フィールドと説明 |
---|---|
static int | DEFAULT_BATCH_SIZE バッチをコミットする前に累積する挿入のデフォルト数 (5000)。 |
logger
コンストラクターと説明 |
---|
BatchSqlUpdate() JavaBean として使用できるようにするコンストラクター。 |
BatchSqlUpdate(DataSourceSE ds, StringSE sql) 指定された DataSource と SQL で更新オブジェクトを構築します。 |
BatchSqlUpdate(DataSourceSE ds, StringSE sql, int[] types) 指定された DataSource、SQL、匿名パラメーターを使用して更新オブジェクトを作成します。 |
BatchSqlUpdate(DataSourceSE ds, StringSE sql, int[] types, int batchSize) 特定の DataSource、SQL、匿名パラメーターを使用して、影響を受ける可能性のある最大行数を指定して、更新オブジェクトを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
int[] | flush() キューに入れられた更新操作をトリガーして、最終バッチとして追加します。 |
int | getExecutionCount() すでに実行されたステートメントの数を返します。 |
int | getQueueCount() キュー内のステートメントまたはステートメントパラメーターの現在の数を返します。 |
int[] | getRowsAffected() すでに実行されたすべてのステートメントの影響を受ける行の数を返します。 |
void | reset() ステートメントパラメーターキュー、影響を受ける行のキャッシュ、実行回数をリセットします。 |
void | setBatchSize(int batchSize) 自動中間フラッシュをトリガーするステートメントの数を設定します。 |
void | setTrackRowsAffected(boolean trackRowsAffected) この操作オブジェクトによって実行されるバッチ更新の影響を受ける行を追跡するかどうかを設定します。 |
protected boolean | supportsLobParameters() BatchSqlUpdate は、BLOB または CLOB パラメーターをサポートしていません。 |
int | update(ObjectSE... params) 指定されたステートメントパラメーターをすぐに実行するのではなく、キューに追加する update のオーバーライドバージョン。 |
checkRowsAffected, setMaxRowsAffected, setRequiredRowsAffected, update, update, update, update, update, update, update, update, updateByNamedParam, updateByNamedParam
compileInternal, getParsedSql, newPreparedStatementCreator, newPreparedStatementCreator, newPreparedStatementSetter, onCompileInternal
afterPropertiesSet, allowsUnusedParameters, checkCompiled, compile, declareParameter, getDeclaredParameters, getGeneratedKeysColumnNames, getJdbcTemplate, getResultSetType, getSql, isCompiled, isReturnGeneratedKeys, isUpdatableResults, resolveSql, setDataSource, setFetchSize, setGeneratedKeysColumnNames, setJdbcTemplate, setMaxRows, setParameters, setQueryTimeout, setResultSetType, setReturnGeneratedKeys, setSql, setTypes, setUpdatableResults, validateNamedParameters, validateParameters
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public BatchSqlUpdate()
public BatchSqlUpdate(DataSourceSE ds, StringSE sql)
ds
- 接続を取得するために使用する DataSourcesql
- 実行する SQL ステートメント public BatchSqlUpdate(DataSourceSE ds, StringSE sql, int[] types)
ds
- 接続を取得するために使用する DataSourcesql
- 実行する SQL ステートメント types
- java.sql.Types
クラスで定義されているパラメーターの SQL 型 Types
SEpublic BatchSqlUpdate(DataSourceSE ds, StringSE sql, int[] types, int batchSize)
ds
- 接続を取得するために使用する DataSourcesql
- 実行する SQL ステートメント types
- java.sql.Types
クラスで定義されているパラメーターの SQL 型 batchSize
- 自動中間フラッシュをトリガーするステートメントの数 Types
SEpublic void setBatchSize(int batchSize)
update
呼び出しまたは指定されたステートメントパラメーターは、バッチサイズが満たされるまでキューに入れられます。満たされると、キューが空になり、バッチが実行されます。 明示的な flush
呼び出しを使用して、すでにキューに入れられているステートメントをフラッシュすることもできます。すべてのステートメントがフラッシュされたことを保証するために、すべてのパラメーターをキューに入れた後にこれを行う必要があることに注意してください。
public void setTrackRowsAffected(boolean trackRowsAffected)
デフォルトは "true" です。これをオフにすると、行数のリストに必要なメモリが節約されます。
getRowsAffected()
protected boolean supportsLobParameters()
RdbmsOperation
の supportsLobParameters
public int update(ObjectSE... params) throws DataAccessException
update
のオーバーライドバージョン。SqlUpdate 基本クラスの他のすべての update
メソッドはこのメソッドを通過するため、同様に動作します。 実際にバッチを実行するには、flush
を呼び出す必要があります。指定されたバッチサイズに達すると、暗黙的なフラッシュが発生します。すべてのステートメントをフラッシュするには、最終的に flush
を呼び出す必要があります。
SqlUpdate
の update
params
- パラメーターオブジェクトの配列 DataAccessException
flush()
public int[] flush()
public int getQueueCount()
public int getExecutionCount()
public int[] getRowsAffected()
reset
が呼び出されるまで、flush
のすべての戻り値を累積します。reset()
public void reset()