「NULL を確実に設定できるようにするには」の版間の差分

提供: tknotebook
移動: 案内検索
(相違点なし)

2016年11月16日 (水) 01:42時点における版

メインページ>コンピュータの部屋#Java>MyBtis Tips


MyBatis で SQL に パラメータに OGNL で値を渡すとき、実行時エラーになってしまうことがあります。 これは JDBC の仕様に起因しています。

JDBC では SQLパラメータに NULL をセットする時は

PreparedStattement#setNull(int parameterIndex, int sqlType)

を使いますが、値の設定にはなぜか、型の sqlType(JDBC型)が必要です。

多くの データベースでは java.sql.Type.OTHER や java.sql.Type.NULL を指定しておけばうまくセットして くれるのですが、MS SQLServer などはひねくれていて通してくれません。

そのような場合は OGNL でパラメータを指定する時

#{name, jdbcType=VARCHAR}

と明示します。