public class ColumnMapRowMapper extends ObjectSE implements RowMapper<MapSE<StringSE,ObjectSE>>
java.util.Map
を作成する RowMapper
実装。すべての列をキーと値のペアとして表します。各列に 1 つのエントリがあり、列名がキーになります。 使用する Map 実装と列 Map の各列に使用するキーは、それぞれ createColumnMap(int)
と getColumnKey(java.lang.String)
をオーバーライドすることでカスタマイズできます。
注意 : デフォルトでは、ColumnMapRowMapper は大文字と小文字を区別しないキーを使用してリンクマップを構築しようとします。これにより、列の順序が保持され、列名に大文字と小文字を使用できるようになります。これには、クラスパス(自動検出される)に Commons コレクションが必要です。それ以外の場合、フォールバックは標準のリンクされた HashMap であり、列の順序は保持されますが、アプリケーションがドライバーによって公開されたのと同じ大文字と小文字で列名を指定する必要があります。
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
メソッドを使用します。さらに、この実装には、TIMESTAMP データ型の非標準オブジェクトを返す Oracle を回避するための「ハック」が含まれています。
rs
- データを保持している ResultSetindex
- 列インデックスです SQLExceptionSE
JdbcUtils.getResultSetValue(java.sql.ResultSet, int, java.lang.Class<?>)