クラス StoredProcedureItemReader<T>

実装されたすべてのインターフェース:
ItemReader<T>ItemStreamItemStreamReader<T>org.springframework.beans.factory.InitializingBean

public class StoredProcedureItemReader<T> extends AbstractCursorItemReader<T>

ストアドプロシージャを実行し、返されたカーソルを読み取り、ResultSet の次の行を継続的に取得するアイテムリーダーの実装。

カーソルを開くために使用される呼び出し可能ステートメントは、"READ_ONLY" オプションと "TYPE_FORWARD_ONLY" オプションを使用して作成されます。デフォルトでは、カーソルは別の接続を使用して開かれます。つまり、ステップ処理の一部として作成されたトランザクションには参加しません。

AbstractItemCountingItemStreamItemReader.read() への各呼び出しは、提供された RowMapper を呼び出し、ResultSet を渡します。

このクラスは、同様の JdbcCursorItemReader クラスをモデルにしています。

このリーダーはスレッドセーフではありません。

作成者:
Thomas Risberg, Mahmoud Ben Hassine
  • コンストラクターの詳細

    • StoredProcedureItemReader

      public StoredProcedureItemReader()
  • メソッドの詳細

    • setRowMapper

      public void setRowMapper(org.springframework.jdbc.core.RowMapper<T> rowMapper)
      read() へのすべての呼び出しに使用される RowMapper を設定します。
      パラメーター:
      rowMapper - 結果のマッピングに使用する RowMapper
    • setProcedureName

      public void setProcedureName(StringSE sprocedureName)
      カーソルの作成時に使用される SQL ステートメントを設定します。このステートメントは、変更なしで直接実行されるため、完全で有効な SQL ステートメントである必要があります。
      パラメーター:
      sprocedureName - ステートメントの呼び出しに使用される SQL
    • setPreparedStatementSetter

      public void setPreparedStatementSetter(org.springframework.jdbc.core.PreparedStatementSetter preparedStatementSetter)
      指定されたクエリで設定する必要があるパラメーター値がある場合に使用する PreparedStatementSetter を設定します。
      パラメーター:
      preparedStatementSetter - SQL への入力に使用
    • setParameters

      public void setParameters(org.springframework.jdbc.core.SqlParameter[] parameters)
      1 つ以上の宣言されたパラメーターを追加します。Bean ファクトリで使用される場合、この操作を構成するために使用されます。各パラメーターは、SQL 型と(オプションで)パラメーターの名前を指定します。
      パラメーター:
      parameters - 宣言された SqlParameter オブジェクトを含む配列
    • setFunction

      public void setFunction(boolean function)
      このストアドプロシージャが関数であるかどうかを設定します。
      パラメーター:
      function - インジケータ
    • setRefCursorPosition

      public void setRefCursorPosition(int refCursorPosition)
      REFCURSOR のパラメーター位置を設定します。REFCURSOR を使用する Oracle および PostgreSQL にのみ使用されます。他のデータベースの場合、これはデフォルトである 0 として保持する必要があります。
      パラメーター:
      refCursorPosition - REFCURSOR のパラメーター位置
    • afterPropertiesSet

      public void afterPropertiesSet() throws ExceptionSE
      必須プロパティが設定されていることを確認します。
      次で指定:
      インターフェース org.springframework.beans.factory.InitializingBeanafterPropertiesSet 
      オーバーライド:
      クラス AbstractCursorItemReader<T>afterPropertiesSet 
      例外:
      IllegalArgumentExceptionSE - データソースまたは SQL プロパティが設定されていない場合。
      ExceptionSE
    • openCursor

      protected void openCursor(ConnectionSE con)
      次で指定:
      クラス AbstractCursorItemReader<T>openCursor 
    • readCursor

      @Nullable protected T readCursor(ResultSetSE rs, int currentRow) throws SQLExceptionSE
      クラスからコピーされた説明: AbstractCursorItemReader
      カーソルを読み取り、このリーダーが返すオブジェクトの型にマッピングします。このメソッドはサブクラスでオーバーライドする必要があります。
      次で指定:
      クラス AbstractCursorItemReader<T>readCursor 
      パラメーター:
      rs - 現在の結果セット
      currentRow - 結果セットの現在の位置
      戻り値:
      カーソル位置のマップされたオブジェクト
      例外:
      SQLExceptionSE - 現在の結果セットとの相互作用が失敗した場合
    • cleanupOnClose

      protected void cleanupOnClose(ConnectionSE connection)
      カーソルとデータベース接続を閉じます。
      次で指定:
      クラス AbstractCursorItemReader<T>cleanupOnClose 
      パラメーター:
      connection - データベースへ
    • getSql

      public StringSE getSql()
      次で指定:
      クラス AbstractCursorItemReader<T>getSql