NULL を確実に設定できるようにするには

提供: tknotebook
2016年11月16日 (水) 01:42時点におけるNakamuri (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

メインページ>コンピュータの部屋#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}

と明示します。