T
- 結果の要素型 public class RowMapperResultSetExtractor<T> extends ObjectSE implements ResultSetExtractor<ListSE<T>>
データベーステーブルの行ごとに 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 オブジェクトを個別に操作する代わりに、実行可能なクエリオブジェクト(行マッピングロジックを含む)をそこに置くことができます。
RowMapper
, JdbcTemplate
, MappingSqlQuery
コンストラクターと説明 |
---|
RowMapperResultSetExtractor(RowMapper<T> rowMapper) 新しい RowMapperResultSetExtractor を作成します。 |
RowMapperResultSetExtractor(RowMapper<T> rowMapper, int rowsExpected) 新しい RowMapperResultSetExtractor を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
ListSE<T> | extractData(ResultSetSE rs) 実装では、ResultSet 全体を処理するためにこのメソッドを実装する必要があります。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public RowMapperResultSetExtractor(RowMapper<T> rowMapper)
rowMapper
- 各行のオブジェクトを作成する RowMapperpublic ListSE<T> extractData(ResultSetSE rs) throws SQLExceptionSE
ResultSetExtractor
ResultSetExtractor<ListSE<T>>
の extractData
rs
- データを抽出する ResultSet 実装はこれを閉じるべきではありません。呼び出し JdbcTemplate によって閉じられます。null
(通常、後者の場合、抽出プログラムはステートフルになります)。SQLExceptionSE
- 列値の取得またはナビゲート中に SQLException が発生した場合 (つまり、SQLException をキャッチする必要はありません。)