使用MyBatis(版本3.2.5)我正在尝试使用NULL更新DB2 DATE列,但是将此值设置为以下错误
org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #5 with JdbcType NULL . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: com.ibm.db2.jcc.c.SqlException: [ibm][db2][jcc][10281][10295] JDBC type 0 is not yet supported.
; uncategorized SQLException for SQL []; SQL state [null]; error code [-99999]; [ibm][db2][jcc][10281][10295] JDBC type 0 is not yet supported.; nested exception is com.ibm.db2.jcc.c.SqlException: [ibm][db2][jcc][10281][10295] JDBC type 0 is not yet supported.
我尝试了以下建议,但它们不适合我
答案 0 :(得分:1)
从line 39 of BaseTypeHandler抛出异常。
设置断点以检查jdbcType.TYPE_CODE
的当前值。当它等于java.sql.Types.TIMESTAMP(93)时它应该可以正常工作,可能不是这种情况。
所以如果不是这样,
this
的预期实际类型为DateTypeHandler。
然后,您可能必须定义自己的 DateTypeHandler ,只需扩展它并从 BaseTypeHandler 覆盖方法setParameter
,实际上只需用forced {替换变量jdbcType.TYPE_CODE
{1}}。
要在所有Date参数的默认情况下使用它,请在mybatis-config.xml(或Spring)的typeHandler部分中注册它。否则,在insert语句中为相关参数设置typeHandler属性。
答案 1 :(得分:0)
找到解决方案..
在mybatis-config.xml中,我有
<setting name="jdbcTypeForNull" value="NULL" />
我改变了它,如下所示。
<configuration>
<settings>
<setting name="jdbcTypeForNull" value="DATE" />
</settings>
</configuration>