クラス BatchSqlUpdate
java.lang.ObjectSE
org.springframework.jdbc.object.RdbmsOperation
org.springframework.jdbc.object.SqlOperation
org.springframework.jdbc.object.SqlUpdate
org.springframework.jdbc.object.BatchSqlUpdate
- 実装されたすべてのインターフェース:
InitializingBean
バッチ更新操作を実行する SqlUpdate サブクラス。更新するレコードのキューイングをカプセル化し、
flush
が呼び出されるか、指定されたバッチサイズに達すると、単一のバッチとして追加します。 このパッケージの他のすべての JDBC 操作オブジェクトとは対照的に、このクラスはスレッドセーフではないオブジェクトであることに注意してください。使用するたびに新しいインスタンスを作成するか、同じスレッド内で再利用する前に reset
を呼び出す必要があります。
フィールドサマリー
フィールドクラス org.springframework.jdbc.object.RdbmsOperation から継承されたフィールド
logger
コンストラクターのサマリー
コンストラクターコンストラクター説明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
すでに実行されたステートメントの数を返します。int
キュー内のステートメントまたはステートメントパラメーターの現在の数を返します。int[]
すでに実行されたすべてのステートメントの影響を受ける行の数を返します。void
reset()
ステートメントパラメーターキュー、影響を受ける行のキャッシュ、実行回数をリセットします。void
setBatchSize
(int batchSize) 自動中間フラッシュをトリガーするステートメントの数を設定します。void
setTrackRowsAffected
(boolean trackRowsAffected) この操作オブジェクトによって実行されるバッチ更新の影響を受ける行を追跡するかどうかを設定します。protected boolean
BatchSqlUpdate は、BLOB または CLOB パラメーターをサポートしていません。int
指定されたステートメントパラメーターをすぐに実行するのではなく、キューに追加するupdate
のオーバーライドバージョン。クラス 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, resolveSql, setDataSource, setFetchSize, setGeneratedKeysColumnNames, setJdbcTemplate, setMaxRows, setParameters, setQueryTimeout, setResultSetType, setReturnGeneratedKeys, setSql, setTypes, setUpdatableResults, validateNamedParameters, validateParameters
フィールドの詳細
DEFAULT_BATCH_SIZE
public static final int DEFAULT_BATCH_SIZEバッチをコミットする前に累積する挿入のデフォルト数 (5000)。- 関連事項:
コンストラクターの詳細
BatchSqlUpdate
public BatchSqlUpdate()JavaBean として使用できるコンストラクター。DataSource と SQL は、コンパイルして使用する前に提供する必要があります。BatchSqlUpdate
指定された DataSource と SQL で更新オブジェクトを構築します。- パラメーター:
ds
- 接続を取得するために使用する DataSourcesql
- 実行する SQL ステートメント
BatchSqlUpdate
指定された DataSource、SQL、匿名パラメーターを使用して更新オブジェクトを作成します。- パラメーター:
ds
- 接続を取得するために使用する DataSourcesql
- 実行する SQL ステートメントtypes
-java.sql.Types
クラスで定義されているパラメーターの SQL 型- 関連事項:
BatchSqlUpdate
特定の DataSource、SQL、匿名パラメーターを使用して、影響を受ける可能性のある最大行数を指定して、更新オブジェクトを作成します。- パラメーター:
ds
- 接続を取得するために使用する DataSourcesql
- 実行する SQL ステートメントtypes
-java.sql.Types
クラスで定義されているパラメーターの SQL 型batchSize
- 自動中間フラッシュをトリガーするステートメントの数- 関連事項:
メソッドの詳細
setBatchSize
public void setBatchSize(int batchSize) 自動中間フラッシュをトリガーするステートメントの数を設定します。update
呼び出しまたは指定されたステートメントパラメーターは、バッチサイズが満たされるまでキューに入れられます。満たされると、キューが空になり、バッチが実行されます。明示的な
flush
呼び出しを使用して、すでにキューに入れられているステートメントをフラッシュすることもできます。すべてのステートメントがフラッシュされたことを保証するために、すべてのパラメーターをキューに入れた後にこれを行う必要があることに注意してください。setTrackRowsAffected
public void setTrackRowsAffected(boolean trackRowsAffected) この操作オブジェクトによって実行されるバッチ更新の影響を受ける行を追跡するかどうかを設定します。デフォルトは "true" です。これをオフにすると、行数のリストに必要なメモリが節約されます。
- 関連事項:
supportsLobParameters
protected boolean supportsLobParameters()BatchSqlUpdate は、BLOB または CLOB パラメーターをサポートしていません。- オーバーライド:
- クラス
RdbmsOperation
のsupportsLobParameters
update
指定されたステートメントパラメーターをすぐに実行するのではなく、キューに追加するupdate
のオーバーライドバージョン。SqlUpdate 基本クラスの他のすべてのupdate
メソッドはこのメソッドを通過するため、同様に動作します。実際にバッチを実行するには、
flush
を呼び出す必要があります。指定されたバッチサイズに達すると、暗黙的なフラッシュが発生します。すべてのステートメントをフラッシュするには、最終的にflush
を呼び出す必要があります。- オーバーライド:
- クラス
SqlUpdate
のupdate
- パラメーター:
params
- パラメーターオブジェクトの配列- 戻り値:
- 更新の影響を受ける行の数 (ステートメントは実際にはこのメソッドによって実行されないため、常に -1 は「該当なし」を意味します)
- 例外:
DataAccessException
- 関連事項:
flush
public int[] flush()キューに入れられた更新操作をトリガーして、最終バッチとして追加します。- 戻り値:
- 各ステートメントの影響を受ける行数の配列
getQueueCount
public int getQueueCount()キュー内のステートメントまたはステートメントパラメーターの現在の数を返します。getExecutionCount
public int getExecutionCount()すでに実行されたステートメントの数を返します。getRowsAffected
public int[] getRowsAffected()すでに実行されたすべてのステートメントの影響を受ける行の数を返します。reset
が呼び出されるまで、flush
のすべての戻り値を累積します。- 戻り値:
- 各ステートメントの影響を受ける行数の配列
- 関連事項:
reset
public void reset()ステートメントパラメーターキュー、影響を受ける行のキャッシュ、実行回数をリセットします。