クラス SimplePropertyRowMapper<T>

java.lang.ObjectSE
org.springframework.jdbc.core.SimplePropertyRowMapper<T>
型パラメーター:
T - 結果の型
実装されたすべてのインターフェース:
RowMapper<T>

public class SimplePropertyRowMapper<T> extends ObjectSE implements RowMapper<T>
行を指定されたマップされたターゲットクラスの新しいインスタンスに変換する RowMapper 実装。マップされたターゲットクラスは、最上位クラスまたは static ネストされたクラスである必要があり、列名に対応する名前付きパラメーターを持つデータクラスコンストラクター、または列名に対応するプロパティ名を持つ典型的な Bean プロパティ setter メソッド、または対応するフィールドを持つフィールドのいずれかを公開できます。名前。

データクラスコンストラクターを setter メソッドと組み合わせる場合、コンストラクター引数を介して正常にマップされたプロパティは、対応する setter メソッドまたはフィールドマッピングを介して追加的にマップされることはありません。これは、コンストラクター引数がプロパティ setter メソッドより優先され、プロパティ setter メソッドが直接フィールドマッピングよりも優先されることを意味します。

名前が一致しない列とプロパティ間のマッピングを容易にするには、"select fname as first_name from customer" のような SQL ステートメントでアンダースコアで区切られた列エイリアスを使用してみてください。first_name はターゲットクラスの setFirstName(String) メソッドにマッピングできます。

これは、特定のカスタマイズや事前定義されたプロパティマッピングが必要ないシナリオ向けの、DataClassRowMapper および BeanPropertyRowMapper に代わる柔軟な代替手段です。

フォールバックプロパティ検出アルゴリズムの点では、このクラスは SimplePropertySqlParameterSource に似ており、JdbcClient にも同様に使用されます。

導入:
6.1
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • SimplePropertyRowMapper

      public SimplePropertyRowMapper(ClassSE<T> mappedClass)
      新しい SimplePropertyRowMapper を作成します。
      パラメーター:
      mappedClass - 各行がマップされるクラス
    • SimplePropertyRowMapper

      public SimplePropertyRowMapper(ClassSE<T> mappedClass, ConversionService conversionService)
      新しい SimplePropertyRowMapper を作成します。
      パラメーター:
      mappedClass - 各行がマップされるクラス
      conversionService - JDBC 値を Bean プロパティにバインドするための ConversionService
  • メソッドの詳細

    • mapRow

      public T mapRow(ResultSetSE rs, int rowNumber) throws SQLExceptionSE
      インターフェースからコピーされた説明: RowMapper
      実装では、このメソッドを実装して、ResultSet 内のデータの各行をマップする必要があります。このメソッドは ResultSet で next() を呼び出すべきではありません。現在の行の値のみをマップすることになっています。
      次で指定:
      インターフェース RowMapper<T>mapRow 
      パラメーター:
      rs - マップする ResultSet (現在の行に対して事前に初期化済み)
      rowNumber - 現在の行の番号
      戻り値:
      現在の行の結果オブジェクト (null の場合があります)
      例外:
      SQLExceptionSE - 列値の取得中に SQLException が発生した場合 (つまり、SQLException をキャッチする必要はありません。)