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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose(ExecutionContext ctx) 内部的にキャッシュしている各種リソースを解放する。booleanhasNext(ExecutionContext ctx) 参照結果から次のレコードが存在するかどうかを返却する。read(ExecutionContext ctx) 参照結果のレコードを1行づつ返却する。voidreopen(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:
readin interfaceDataReader<SqlRow>- Parameters:
ctx- 実行コンテキスト- Returns:
- レコードデータをキャッシュするオブジェクト
-
hasNext
参照結果から次のレコードが存在するかどうかを返却する。 初回読み込み時にデータベースからレコードを取得し、キャッシュする。
結果はそのキャッシュから返却する。- Specified by:
hasNextin interfaceDataReader<SqlRow>- Parameters:
ctx- 実行コンテキスト- Returns:
- 次に読み込むレコードが存在する場合
true
-
close
内部的にキャッシュしている各種リソースを解放する。 この実装では、レコードの読み込みに使用したステートメントオブジェクトがnullでない場合、解放する。- Specified by:
closein 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:
- このオブジェクト自体
-