クラス JdbcPagingItemReader<T>
java.lang.ObjectSE
org.springframework.batch.item.ItemStreamSupport
org.springframework.batch.item.support.AbstractItemStreamItemReader<T>
org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<T>
org.springframework.batch.item.database.AbstractPagingItemReader<T>
org.springframework.batch.item.database.JdbcPagingItemReader<T>
- 実装されているすべてのインターフェース:
ItemReader<T>、ItemStream、ItemStreamReader<T>、org.springframework.beans.factory.InitializingBean
public class JdbcPagingItemReader<T>
extends AbstractPagingItemReader<T>
implements org.springframework.beans.factory.InitializingBean
JDBC を使用してページング方式でデータベースレコードを読み取るための ItemReader。
PagingQueryProvider によって構築された SQL を実行して、リクエストされたデータを取得します。AbstractPagingItemReader.setPageSize(int) で指定されたサイズのページングされたリクエストを使用して、クエリが実行されます。AbstractItemCountingItemStreamItemReader.read() メソッドが呼び出され、現在の位置に対応するオブジェクトを返すときに、必要なときに追加のページがリクエストされます。再起動時に、最後の並べ替えキーの値を使用して、読み取る最初のページを見つけます(したがって、正常に処理されたアイテムが削除または変更されたかどうかは関係ありません)。実行間でデータが失われないことを保証するために、ソートキーに一意のキー制約を設定することが重要です。
ページングのパフォーマンスは、返される行の数を制限するために利用可能なデータベース固有の機能に依存します。かなり大きなページサイズを設定し、ページサイズに一致するコミット間隔を使用すると、パフォーマンスが向上します。
実装は open(ExecutionContext) の呼び出し間でスレッドセーフですが、マルチスレッドクライアントで使用する場合は saveState=false を使用することを忘れないでください(再起動は利用できません)。
- 導入:
- 2.0
- 作成者:
- Thomas Risberg, Dave Syer, Michael Minella, Mahmoud Ben Hassine
フィールドのサマリー
フィールドクラス org.springframework.batch.item.database.AbstractPagingItemReader から継承されたフィールド
logger, resultsコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明void必須プロパティを確認してください。protected voidvoidopen(ExecutionContext executionContext) 提供されたExecutionContextのストリームを開きます。voidsetDataSource(DataSourceSE dataSource) voidsetFetchSize(int fetchSize) このResultSetオブジェクトにさらに行が必要な場合に、データベースからフェッチする行数に関するヒントを JDBC ドライバーに提供します。voidsetParameterValues(MapSE<StringSE, ObjectSE> parameterValues) クエリの実行に使用されるパラメーター値。voidsetQueryProvider(PagingQueryProvider queryProvider) voidsetRowMapper(org.springframework.jdbc.core.RowMapper<T> rowMapper) このリーダーで使用される行マッパーの実装。voidupdate(ExecutionContext executionContext) オープン中に提供された実行コンテキストが保存されようとしていることを示します。クラス org.springframework.batch.item.database.AbstractPagingItemReader から継承されたメソッド
doClose, doOpen, doRead, getPage, getPageSize, jumpToItem, setPageSizeクラス org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader から継承されたメソッド
close, getCurrentItemCount, isSaveState, read, setCurrentItemCount, setMaxItemCount, setSaveStateクラス org.springframework.batch.item.ItemStreamSupport から継承されたメソッド
getExecutionContextKey, getName, setExecutionContextName, setName
フィールドの詳細
VALUE_NOT_SET
public static final int VALUE_NOT_SET- 関連事項:
コンストラクターの詳細
JdbcPagingItemReader
public JdbcPagingItemReader()
メソッドの詳細
setDataSource
setFetchSize
public void setFetchSize(int fetchSize) このResultSetオブジェクトにさらに行が必要な場合に、データベースからフェッチする行数に関するヒントを JDBC ドライバーに提供します。指定されたフェッチサイズがゼロの場合、JDBC ドライバーは値を無視します。- パラメーター:
fetchSize- 取得する行数- 関連事項:
setQueryProvider
PagingQueryProviderリーダーが必要とするすべてのプラットフォーム依存クエリ生成機能を提供します。- パラメーター:
queryProvider- 使用するPagingQueryProvider
setRowMapper
このリーダーで使用される行マッパーの実装。行マッパーは、結果セットの行をオブジェクトに変換するために使用され、オブジェクトはリーダーによって返されます。- パラメーター:
rowMapper-RowMapper実装
setParameterValues
クエリの実行に使用されるパラメーター値。名前付きパラメーターを使用する場合、キーはクエリ句で使用される名前にする必要があります。"?" を使用する場合プレースホルダは、指定された select、from、where 句を使用して作成されたクエリ文字列にパラメーターが表示される相対インデックスである必要があります。- パラメーター:
parameterValues- クエリ文字列で使用される名前付き / インデックスパラメーターによってキー設定された値。
afterPropertiesSet
必須プロパティを確認してください。- 次で指定:
- インターフェース
org.springframework.beans.factory.InitializingBeanのafterPropertiesSet - オーバーライド:
- クラス
AbstractPagingItemReader<T>のafterPropertiesSet - 例外:
ExceptionSE- 関連事項:
InitializingBean.afterPropertiesSet()
doReadPage
protected void doReadPage()- 次で指定:
- クラス
AbstractPagingItemReader<T>のdoReadPage
update
インターフェースからコピーされた説明:ItemStreamオープン中に提供された実行コンテキストが保存されようとしていることを示します。状態が残っているが、コンテキストに入れられていない場合は、ここに追加する必要があります。- 次で指定:
- インターフェース
ItemStreamのupdate - オーバーライド:
- クラス
AbstractItemCountingItemStreamItemReader<T>のupdate - パラメーター:
executionContext- 更新される- 例外:
ItemStreamException
open
インターフェースからコピーされた説明:ItemStream提供されたExecutionContextのストリームを開きます。- 次で指定:
- インターフェース
ItemStreamのopen - オーバーライド:
- クラス
AbstractItemCountingItemStreamItemReader<T>のopen - パラメーター:
executionContext- 現在のステップのExecutionContext。再起動時のステップの最後の実行からの executionContext になります。