クラス RowMapperResultSetExtractor<T>
java.lang.ObjectSE
org.springframework.jdbc.core.RowMapperResultSetExtractor<T>
- 型パラメーター:
T
- 結果の要素型
- 実装されたすべてのインターフェース:
ResultSetExtractor<ListSE<T>>
public class RowMapperResultSetExtractor<T>
extends ObjectSE
implements ResultSetExtractor<ListSE<T>>
各行のオブジェクトを作成することになっている RowMapper に委譲する ResultSetExtractor インターフェースのアダプター実装。各オブジェクトは、この ResultSetExtractor の結果リストに追加されます。
データベーステーブルの行ごとに 1 つのオブジェクトの典型的なケースに役立ちます。結果リストのエントリの数は、行の数と一致します。
RowMapper オブジェクトは通常、ステートレスであり、再利用可能です。RowMapperResultSetExtractor アダプターのみがステートフルです。
JdbcTemplate の使用例:
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); // reusable object RowMapper rowMapper = new UserRowMapper(); // reusable object List allUsers = (List) jdbcTemplate.query( "select * from user", new RowMapperResultSetExtractor(rowMapper, 10)); User user = (User) jdbcTemplate.queryForObject( "select * from user where id=?", new Object[] {id}, new RowMapperResultSetExtractor(rowMapper, 1));
あるいは、jdbc.object
パッケージから MappingSqlQuery をサブクラス化することを検討してください。JdbcTemplate および RowMapper オブジェクトを個別に操作する代わりに、実行可能なクエリオブジェクト(行マッピングロジックを含む)をそこに置くことができます。
- 導入:
- 1.0.2
- 作成者:
- Juergen Hoeller
- 関連事項:
コンストラクターのサマリー
コンストラクター説明RowMapperResultSetExtractor
(RowMapper<T> rowMapper) 新しい RowMapperResultSetExtractor を作成します。RowMapperResultSetExtractor
(RowMapper<T> rowMapper, int rowsExpected) 新しい RowMapperResultSetExtractor を作成します。メソッドのサマリー
コンストラクターの詳細
RowMapperResultSetExtractor
新しい RowMapperResultSetExtractor を作成します。- パラメーター:
rowMapper
- 各行のオブジェクトを作成する RowMapper
RowMapperResultSetExtractor
新しい RowMapperResultSetExtractor を作成します。- パラメーター:
rowMapper
- 各行のオブジェクトを作成する RowMapperrowsExpected
- 予想される行の数 (最適化されたコレクション処理に使用されます)
メソッドの詳細
extractData
インターフェースからコピーされた説明:ResultSetExtractor
実装では、ResultSet 全体を処理するためにこのメソッドを実装する必要があります。- 次で指定:
- インターフェース
ResultSetExtractor<T>
のextractData
- パラメーター:
rs
- データを抽出する ResultSet 実装はこれを閉じるべきではありません。呼び出し JdbcTemplate によって閉じられます。- 戻り値:
- 任意の結果オブジェクト、または存在しない場合は
null
(通常、後者の場合、抽出プログラムはステートフルになります)。 - 例外:
SQLExceptionSE
- 列値の取得またはナビゲート中に SQLException が発生した場合 (つまり、SQLException をキャッチする必要はありません。)