Package nablarch.fw.reader
Class DatabaseRecordReader
java.lang.Object
nablarch.fw.reader.DatabaseRecordReader
- All Implemented Interfaces:
DataReader<SqlRow>
データベースの参照結果を1レコードづつ読み込むデータリーダ。
- Author:
- Iwauo Tajima
-
Nested Class Summary
Nested classes/interfaces inherited from interface nablarch.fw.DataReader
DataReader.NoMoreRecord
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close
(ExecutionContext ctx) 内部的にキャッシュしている各種リソースを解放する。boolean
hasNext
(ExecutionContext ctx) 参照結果から次のレコードが存在するかどうかを返却する。read
(ExecutionContext ctx) 参照結果のレコードを1行づつ返却する。void
reopen
(ExecutionContext ctx) ステートメントを再実行し、最新の情報を取得し直す。setListener
(DatabaseRecordListener listener) データベースレコードリスナを設定する。setStatement
(ParameterizedSqlPStatement parameterizedSqlPStatement, Object condition) テーブルを参照するSQLステートメント及び条件を設定する。setStatement
(SqlPStatement statement) テーブルを参照するSQLステートメントを設定する。
-
Constructor Details
-
DatabaseRecordReader
DatabaseRecordReader
オブジェクトを生成する。
-
-
Method Details
-
read
参照結果のレコードを1行づつ返却する。 初回読み込み時にデータベースからレコードを取得し、キャッシュする。
レコードはそのキャッシュから返却する。
参照結果に次のレコードが存在しない場合、null
を返す。- Specified by:
read
in interfaceDataReader<SqlRow>
- Parameters:
ctx
- 実行コンテキスト- Returns:
- レコードデータをキャッシュするオブジェクト
-
hasNext
参照結果から次のレコードが存在するかどうかを返却する。 初回読み込み時にデータベースからレコードを取得し、キャッシュする。
結果はそのキャッシュから返却する。- Specified by:
hasNext
in interfaceDataReader<SqlRow>
- Parameters:
ctx
- 実行コンテキスト- Returns:
- 次に読み込むレコードが存在する場合
true
-
close
内部的にキャッシュしている各種リソースを解放する。 この実装では、レコードの読み込みに使用したステートメントオブジェクトがnull
でない場合、解放する。- Specified by:
close
in interfaceDataReader<SqlRow>
- Parameters:
ctx
- 実行コンテキスト
-
reopen
ステートメントを再実行し、最新の情報を取得し直す。 取得した参照結果をキャッシュする。- Parameters:
ctx
- 実行コンテキスト
-
setStatement
テーブルを参照する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:
- このオブジェクト自体
-