T
- 結果の型 public class SingleColumnRowMapper<T> extends ObjectSE implements RowMapper<T>
RowMapper
実装。単一の列のみを含む java.sql.ResultSet
での操作を期待しています。 各行の結果値の型を指定できます。単一列の値は ResultSet
から抽出され、指定されたターゲット型に変換されます。
JdbcTemplate.queryForList(String, Class)
, JdbcTemplate.queryForObject(String, Class)
コンストラクターと説明 |
---|
SingleColumnRowMapper() Bean スタイルの構成用に新しい SingleColumnRowMapper を作成します。 |
SingleColumnRowMapper(ClassSE<T> requiredType) 新しい SingleColumnRowMapper を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected ObjectSE | convertValueToRequiredType(ObjectSE value, ClassSE<?> requiredType) 指定された列の値を指定された必須の型に変換します。 |
protected ObjectSE | getColumnValue(ResultSetSE rs, int index) 最も適切な値型を使用して、指定された列の JDBC オブジェクト値を取得します。 |
protected ObjectSE | getColumnValue(ResultSetSE rs, int index, ClassSE<?> requiredType) 指定された列の JDBC オブジェクト値を取得します。 |
T | mapRow(ResultSetSE rs, int rowNum) 現在の行の単一の列の値を抽出します。 |
static <T> SingleColumnRowMapper<T> | newInstance(ClassSE<T> requiredType) 新しい SingleColumnRowMapper を作成する静的ファクトリメソッド。 |
static <T> SingleColumnRowMapper<T> | newInstance(ClassSE<T> requiredType, ConversionService conversionService) 新しい SingleColumnRowMapper を作成する静的ファクトリメソッド。 |
void | setConversionService(ConversionService conversionService) 取得した値を変換するための ConversionService を設定します。 |
void | setRequiredType(ClassSE<T> requiredType) 各結果オブジェクトが一致すると予想される型を設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public SingleColumnRowMapper()
SingleColumnRowMapper
を作成します。public void setRequiredType(ClassSE<T> requiredType)
指定しない場合、JDBC ドライバーから返される列の値が公開されます。
public void setConversionService(@Nullable ConversionService conversionService)
ConversionService
を設定します。 デフォルトは DefaultConversionService
です。
DefaultConversionService.getSharedInstance()
@Nullable public T mapRow(ResultSetSE rs, int rowNum) throws SQLExceptionSE
列が 1 つだけ選択されていることを検証し、必要に応じて getColumnValue()
および convertValueToRequiredType
にも委譲します。
RowMapper<T>
の mapRow
rs
- ResultSet をマップする (現在の行に対して事前に初期化済み)rowNum
- 現在の行の番号 null
の場合があります)SQLExceptionSE
- 列値の取得中に SQLException が発生した場合 (つまり、SQLException をキャッチする必要はありません。)ResultSetMetaData.getColumnCount()
SE, getColumnValue(java.sql.ResultSet, int, Class)
, convertValueToRequiredType(Object, Class)
@Nullable protected ObjectSE getColumnValue(ResultSetSE rs, int index, @Nullable ClassSE<?> requiredType) throws SQLExceptionSE
デフォルトの実装は JdbcUtils.getResultSetValue(java.sql.ResultSet, int, Class)
を呼び出します。必要な型が指定されていない場合、このメソッドは getColumnValue(rs, index)
に委譲します。これは基本的に ResultSet.getObject(index)
を呼び出しますが、適切な値型にいくつかの追加のデフォルト変換を適用します。
rs
- データを保持している ResultSetindex
- 列インデックスです requiredType
- 各結果オブジェクトが一致すると予想される型 (指定がない場合は null
)SQLExceptionSE
- 抽出に失敗した場合 JdbcUtils.getResultSetValue(java.sql.ResultSet, int, Class)
, getColumnValue(java.sql.ResultSet, int)
@Nullable protected ObjectSE getColumnValue(ResultSetSE rs, int index) throws SQLExceptionSE
デフォルトの実装では、ResultSet.getObject(index)
メソッドを使用する JdbcUtils.getResultSetValue()
に委譲します。さらに、Oracle が TIMESTAMP データ型の非標準オブジェクトを返すのを回避するための「ハック」が含まれています。詳細については、JdbcUtils#getResultSetValue()
javadoc を参照してください。
rs
- データを保持している ResultSetindex
- 列インデックスです SQLExceptionSE
- 抽出に失敗した場合 JdbcUtils.getResultSetValue(java.sql.ResultSet, int)
@Nullable protected ObjectSE convertValueToRequiredType(ObjectSE value, ClassSE<?> requiredType)
必要な型が String の場合、値は単に toString()
を介して文字列化されます。数値の場合、値は数値変換または文字列解析(値の型に応じて)によって数値に変換されます。それ以外の場合、値は ConversionService
を使用して必要な型に変換されます。
value
- getColumnValue()
から抽出された列値 (非 null
)requiredType
- 各結果オブジェクトが一致すると予想される型 (非 null
)getColumnValue(java.sql.ResultSet, int, Class)
public static <T> SingleColumnRowMapper<T> newInstance(ClassSE<T> requiredType)
SingleColumnRowMapper
を作成する静的ファクトリメソッド。requiredType
- 各結果オブジェクトが一致すると予想される型 newInstance(Class, ConversionService)
public static <T> SingleColumnRowMapper<T> newInstance(ClassSE<T> requiredType, @Nullable ConversionService conversionService)
SingleColumnRowMapper
を作成する静的ファクトリメソッド。requiredType
- 各結果オブジェクトが一致すると予想される型 conversionService
- フェッチされた値を変換する場合は ConversionService
、なしの場合は null
newInstance(Class)
, setConversionService(org.springframework.core.convert.ConversionService)