「NULL を確実に設定できるようにするには」の版間の差分
提供: tknotebook
(ページの作成:「Category:コンピュータCategory:JavaCategory:MyBatis メインページ>コンピュータの部屋#Java>MyBtis Tips MyBatis で SQL ...」) |
(相違点なし)
|
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}
と明示します。