Class DatabaseRecordReader

java.lang.Object
nablarch.fw.reader.DatabaseRecordReader
All Implemented Interfaces:
DataReader<SqlRow>

public class DatabaseRecordReader extends Object implements DataReader<SqlRow>
データベースの参照結果を1レコードづつ読み込むデータリーダ。
  • Constructor Details

    • DatabaseRecordReader

      @Published public DatabaseRecordReader()
      DatabaseRecordReaderオブジェクトを生成する。
  • Method Details

    • read

      public SqlRow read(ExecutionContext ctx)
      参照結果のレコードを1行づつ返却する。

      初回読み込み時にデータベースからレコードを取得し、キャッシュする。
      レコードはそのキャッシュから返却する。
      参照結果に次のレコードが存在しない場合、nullを返す。

      Specified by:
      read in interface DataReader<SqlRow>
      Parameters:
      ctx - 実行コンテキスト
      Returns:
      レコードデータをキャッシュするオブジェクト
    • hasNext

      public boolean hasNext(ExecutionContext ctx)
      参照結果から次のレコードが存在するかどうかを返却する。

      初回読み込み時にデータベースからレコードを取得し、キャッシュする。
      結果はそのキャッシュから返却する。

      Specified by:
      hasNext in interface DataReader<SqlRow>
      Parameters:
      ctx - 実行コンテキスト
      Returns:
      次に読み込むレコードが存在する場合 true
    • close

      public void close(ExecutionContext ctx)
      内部的にキャッシュしている各種リソースを解放する。

      この実装では、レコードの読み込みに使用したステートメントオブジェクトが nullでない場合、解放する。

      Specified by:
      close in interface DataReader<SqlRow>
      Parameters:
      ctx - 実行コンテキスト
    • reopen

      public void reopen(ExecutionContext ctx)
      ステートメントを再実行し、最新の情報を取得し直す。

      取得した参照結果をキャッシュする。

      Parameters:
      ctx - 実行コンテキスト
    • setStatement

      @Published public DatabaseRecordReader setStatement(SqlPStatement statement)
      テーブルを参照するSQLステートメントを設定する。
      Parameters:
      statement - SQLステートメント
      Returns:
      このオブジェクト自体
    • setStatement

      @Published public DatabaseRecordReader setStatement(ParameterizedSqlPStatement parameterizedSqlPStatement, Object condition)
      テーブルを参照するSQLステートメント及び条件を設定する。
      Parameters:
      parameterizedSqlPStatement - SQLステートメント
      condition - ステートメントのINパラメータに設定する値を持つオブジェクト
      Returns:
      このオブジェクト自体
    • setListener

      データベースレコードリスナを設定する。

      リスナに定義されたコールバック処理は、 処理対象レコードをキャッシュするためのデータベースアクセス前に実行される。

      本リーダにリスナを設定することで、 処理対象レコードをデータベースから取得する前に任意の処理を実行することができる。

      Parameters:
      listener - データベースレコードリスナ
      Returns:
      このオブジェクト自体