SqlTemplateValueType.java

  1. package com.github.mygreen.splate.type;

  2. import org.springframework.lang.Nullable;

  3. /**
  4.  * SQLテンプレート中のパラメータ(変数)の型とJDBCの型を橋渡しするためのインタフェースです。
  5.  *
  6.  *
  7.  * @author T.TSUCHIE
  8.  * @param <T> マッピング対象の型
  9.  */
  10. public interface SqlTemplateValueType<T> {

  11.     /**
  12.      * SQLのパラメータ変数として値を取得します。
  13.      * <p>JDBCが対応していないタイプの場合は、対応している値に変換します。</p>
  14.      *
  15.      * @param value 変換する値
  16.      * @return SQLのパラメータ変数。
  17.      * @throws SqlTypeConversionException SQLで扱う型(JDBCの型)の変換にした場合にスローされます。
  18.      */
  19.     Object getBindVariableValue(@Nullable T value);

  20.     /**
  21.      * SQLに直接埋め込む値として文字列に変換します。
  22.      *
  23.      * @param value 変換する値。非nullが渡されます。
  24.      * @return 文字列に変換した値
  25.      * @throws TextConversionException 値を文字列への変換に失敗したときにストローされます。
  26.      */
  27.     default String getEmbeddedValue(final @Nullable T value) {
  28.         if(value == null) {
  29.             return null;
  30.         }
  31.         return value.toString();
  32.     }
  33. }