T
- 結果の型 public abstract class AbstractLobStreamingResultSetExtractor<T> extends ObjectSE implements ResultSetExtractor<T>
通常は 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); } } );
LobHandler
, LobRetrievalFailureException
コンストラクターと説明 |
---|
AbstractLobStreamingResultSetExtractor() |
修飾子と型 | メソッドと説明 |
---|---|
T | extractData(ResultSetSE rs) ResultSet の状態に応じて、handleNoRowFound、handleMultipleRowsFound、および streamData へのデリゲート。 |
protected void | handleMultipleRowsFound() ResultSet に複数の行が含まれる場合を処理します。 |
protected void | handleNoRowFound() ResultSet に行が含まれない場合を処理します。 |
protected abstract void | streamData(ResultSetSE rs) 指定された ResultSet から OutputStream に LOB コンテンツをストリーミングします。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
@Nullable public final T extractData(ResultSetSE rs) throws SQLExceptionSE, DataAccessException
ResultSetExtractor<T>
の extractData
rs
- データを抽出する ResultSet 実装はこれを閉じるべきではありません。呼び出し JdbcTemplate によって閉じられます。null
(通常、後者の場合、抽出プログラムはステートフルになります)。SQLExceptionSE
- 列値の取得またはナビゲート中に SQLException が発生した場合 (つまり、SQLException をキャッチする必要はありません。)DataAccessException
- カスタム例外の場合 handleNoRowFound()
, handleMultipleRowsFound()
, streamData(java.sql.ResultSet)
, LobRetrievalFailureException
protected void handleNoRowFound() throws DataAccessException
DataAccessException
- 対応する例外、デフォルトでは EmptyResultDataAccessExceptionEmptyResultDataAccessException
protected void handleMultipleRowsFound() throws DataAccessException
DataAccessException
- 対応する例外、デフォルトでは IncorrectResultSizeDataAccessExceptionIncorrectResultSizeDataAccessException
protected abstract void streamData(ResultSetSE rs) throws SQLExceptionSE, IOExceptionSE, DataAccessException
通常、内部クラスとして使用され、周囲のメソッド引数および周囲のクラスの LobHandler インスタンス変数にアクセスできます。
rs
- LOB コンテンツを取得する ResultSetSQLExceptionSE
- JDBC メソッドによってスローされた場合 IOExceptionSE
- ストリームアクセスメソッドによってスローされた場合 DataAccessException
- カスタム例外の場合 LobHandler.getBlobAsBinaryStream(java.sql.ResultSet, java.lang.String)
, FileCopyUtils