public class ColumnMapRowMapper extends ObjectSE implements RowMapper<MapSE<StringSE,ObjectSE>>
java.util.Map
を作成する RowMapper
実装。すべての列をキーと値のペアとして表します。各列に 1 つのエントリがあり、列名がキーになります。 使用するマップの実装と、列マップの各列に使用するキーは、それぞれ createColumnMap(int)
と getColumnKey(java.lang.String)
をオーバーライドすることでカスタマイズできます。
注意 : デフォルトでは、ColumnMapRowMapper
は大文字と小文字を区別しないキーを使用してリンクされたマップを作成しようとし、列の順序を保持し、列名に任意の大文字と小文字を使用できるようにします。
JdbcTemplate.queryForList(String)
, JdbcTemplate.queryForMap(String)
コンストラクターと説明 |
---|
ColumnMapRowMapper() |
修飾子と型 | メソッドと説明 |
---|---|
protected MapSE<StringSE, ObjectSE> | createColumnMap(int columnCount) 列マップとして使用される Map インスタンスを作成します。 |
protected StringSE | getColumnKey(StringSE columnName) 列マップの特定の列に使用するキーを決定します。 |
protected ObjectSE | getColumnValue(ResultSetSE rs, int index) 指定された列の JDBC オブジェクト値を取得します。 |
MapSE<StringSE, ObjectSE> | mapRow(ResultSetSE rs, int rowNum) ResultSet のデータの各行をマップするには、実装でこのメソッドを実装する必要があります。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public MapSE<StringSE,ObjectSE> mapRow(ResultSetSE rs, int rowNum) throws SQLExceptionSE
RowMapper
next()
を呼び出すべきではありません。現在の行の値をマップすることのみが想定されています。protected MapSE<StringSE,ObjectSE> createColumnMap(int columnCount)
デフォルトでは、リンクされた大文字と小文字を区別しないマップが作成されます。
columnCount
- マップの初期容量として使用される列数 LinkedCaseInsensitiveMap
protected StringSE getColumnKey(StringSE columnName)
デフォルトでは、指定された列名は変更されずに返されます。
columnName
- ResultSet によって返される列名 ResultSetMetaData.getColumnName(int)
SE@Nullable protected ObjectSE getColumnValue(ResultSetSE rs, int index) throws SQLExceptionSE
デフォルトの実装では、getObject
メソッドを使用します。さらに、この実装には、Oracle が TIMESTAMP データ型の非標準オブジェクトを返すことを回避するための「ハック」が含まれています。
rs
- データを保持する ResultSetindex
- 列インデックス SQLExceptionSE
JdbcUtils.getResultSetValue(java.sql.ResultSet, int, java.lang.Class<?>)