SqlTemplateValueType.java
package com.github.mygreen.splate.type;
import org.springframework.lang.Nullable;
/**
* SQLテンプレート中のパラメータ(変数)の型とJDBCの型を橋渡しするためのインタフェースです。
*
*
* @author T.TSUCHIE
* @param <T> マッピング対象の型
*/
public interface SqlTemplateValueType<T> {
/**
* SQLのパラメータ変数として値を取得します。
* <p>JDBCが対応していないタイプの場合は、対応している値に変換します。</p>
*
* @param value 変換する値
* @return SQLのパラメータ変数。
* @throws SqlTypeConversionException SQLで扱う型(JDBCの型)の変換にした場合にスローされます。
*/
Object getBindVariableValue(@Nullable T value);
/**
* SQLに直接埋め込む値として文字列に変換します。
*
* @param value 変換する値。非nullが渡されます。
* @return 文字列に変換した値
* @throws TextConversionException 値を文字列への変換に失敗したときにストローされます。
*/
default String getEmbeddedValue(final @Nullable T value) {
if(value == null) {
return null;
}
return value.toString();
}
}