クラス AbstractLobStreamingResultSetExtractor<T>
java.lang.ObjectSE
org.springframework.jdbc.core.support.AbstractLobStreamingResultSetExtractor<T>
- 型パラメーター:
T
- 結果の型
- 実装されたすべてのインターフェース:
ResultSetExtractor<T>
public abstract class AbstractLobStreamingResultSetExtractor<T>
extends ObjectSE
implements ResultSetExtractor<T>
LOB データのストリーミングを想定した抽象 ResultSetExtractor 実装。通常、内部クラスとして使用され、周囲のメソッド引数にアクセスできます。
通常は LobHandler を使用して、LOB コンテンツを一部の OutputStream にストリーミングするための streamData
テンプレートメソッドにデリゲートします。ストリーミング中にスローされた IOException を LobRetrievalFailureException に変換します。
JdbcTemplate の使用例:
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); // reusable object final LobHandler lobHandler = new DefaultLobHandler(); // reusable object jdbcTemplate.query( "SELECT content FROM imagedb WHERE image_name=?", new Object[] {name}, new AbstractLobStreamingResultSetExtractor() { public void streamData(ResultSet rs) throws SQLException, IOException { FileCopyUtils.copy(lobHandler.getBlobAsBinaryStream(rs, 1), contentStream); } });
- 導入:
- 1.0.2
- 作成者:
- Juergen Hoeller
- 関連事項:
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明final T
ResultSet の状態に応じて、handleNoRowFound、handleMultipleRowsFound、および streamData に委譲します。protected void
ResultSet に複数の行が含まれる場合を処理します。protected void
ResultSet に行が含まれない場合を処理します。protected abstract void
指定された ResultSet から OutputStream に LOB コンテンツをストリーミングします。
コンストラクターの詳細
AbstractLobStreamingResultSetExtractor
public AbstractLobStreamingResultSetExtractor()
メソッドの詳細
extractData
ResultSet の状態に応じて、handleNoRowFound、handleMultipleRowsFound、および streamData に委譲します。streamData によってスローされた IOException を LobRetrievalFailureException に変換します。- 次で指定:
- インターフェース
ResultSetExtractor<T>
のextractData
- パラメーター:
rs
- データを抽出する ResultSet 実装はこれを閉じるべきではありません。呼び出し JdbcTemplate によって閉じられます。- 戻り値:
- 任意の結果オブジェクト、または存在しない場合は
null
(通常、後者の場合、抽出プログラムはステートフルになります)。 - 例外:
SQLExceptionSE
- 列値の取得またはナビゲート中に SQLException が発生した場合 (つまり、SQLException をキャッチする必要はありません。)DataAccessException
- カスタム例外の場合- 関連事項:
handleNoRowFound
ResultSet に行が含まれない場合を処理します。- 例外:
DataAccessException
- 対応する例外、デフォルトでは EmptyResultDataAccessException- 関連事項:
handleMultipleRowsFound
ResultSet に複数の行が含まれる場合を処理します。- 例外:
DataAccessException
- 対応する例外、デフォルトでは IncorrectResultSizeDataAccessException- 関連事項:
streamData
protected abstract void streamData(ResultSetSE rs) throws SQLExceptionSE, IOExceptionSE, DataAccessException 指定された ResultSet から OutputStream に LOB コンテンツをストリーミングします。通常、内部クラスとして使用され、周囲のメソッド引数および周囲のクラスの LobHandler インスタンス変数にアクセスできます。
- パラメーター:
rs
- LOB コンテンツを取得する ResultSet- 例外:
SQLExceptionSE
- JDBC メソッドによってスローされた場合IOExceptionSE
- ストリームアクセスメソッドによってスローされた場合DataAccessException
- カスタム例外の場合- 関連事項: