クラス BatchSqlUpdate

実装されたすべてのインターフェース:
InitializingBean

public class BatchSqlUpdate extends SqlUpdate
バッチ更新操作を実行する SqlUpdate サブクラス。更新するレコードのキューイングをカプセル化し、flush が呼び出されるか、指定されたバッチサイズに達すると、単一のバッチとして追加します。

このパッケージの他のすべての JDBC 操作オブジェクトとは対照的に、このクラスはスレッドセーフではないオブジェクトであることに注意してください。使用するたびに新しいインスタンスを作成するか、同じスレッド内で再利用する前に reset を呼び出す必要があります。

導入:
1.1
作成者:
Keith Donald, Juergen Hoeller
関連事項:
  • フィールドの詳細

    • DEFAULT_BATCH_SIZE

      public static final int DEFAULT_BATCH_SIZE
      バッチをコミットする前に累積する挿入のデフォルト数 (5000)。
      関連事項:
  • コンストラクターの詳細

    • BatchSqlUpdate

      public BatchSqlUpdate()
      JavaBean として使用できるコンストラクター。DataSource と SQL は、コンパイルして使用する前に提供する必要があります。
      関連事項:
    • BatchSqlUpdate

      public BatchSqlUpdate(DataSourceSE ds, StringSE sql)
      指定された DataSource と SQL で更新オブジェクトを構築します。
      パラメーター:
      ds - 接続を取得するために使用する DataSource
      sql - 実行する SQL ステートメント
    • BatchSqlUpdate

      public BatchSqlUpdate(DataSourceSE ds, StringSE sql, int[] types)
      指定された DataSource、SQL、匿名パラメーターを使用して更新オブジェクトを作成します。
      パラメーター:
      ds - 接続を取得するために使用する DataSource
      sql - 実行する SQL ステートメント
      types - java.sql.Types クラスで定義されているパラメーターの SQL 型
      関連事項:
    • BatchSqlUpdate

      public BatchSqlUpdate(DataSourceSE ds, StringSE sql, int[] types, int batchSize)
      特定の DataSource、SQL、匿名パラメーターを使用して、影響を受ける可能性のある最大行数を指定して、更新オブジェクトを作成します。
      パラメーター:
      ds - 接続を取得するために使用する DataSource
      sql - 実行する 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 パラメーターをサポートしていません。
      オーバーライド:
      クラス RdbmsOperationsupportsLobParameters 
    • update

      public int update(ObjectSE... params) throws DataAccessException
      指定されたステートメントパラメーターをすぐに実行するのではなく、キューに追加する update のオーバーライドバージョン。SqlUpdate 基本クラスの他のすべての update メソッドはこのメソッドを通過するため、同様に動作します。

      実際にバッチを実行するには、flush を呼び出す必要があります。指定されたバッチサイズに達すると、暗黙的なフラッシュが発生します。すべてのステートメントをフラッシュするには、最終的に flush を呼び出す必要があります。

      オーバーライド:
      クラス SqlUpdateupdate 
      パラメーター:
      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()
      ステートメントパラメーターキュー、影響を受ける行のキャッシュ、実行回数をリセットします。