在PreparedStatement setObject方法中传递空值会给出异常

vku*_*mar 2 java null prepared-statement

我们对此有解决方案吗?

我的代码是这样的:

preparedStatement.SetObject(i , MyArray);
Run Code Online (Sandbox Code Playgroud)

在这里,MyArray是从表中获取的记录的数组。现在,只要以上语句找到一个null值,它就会引发一个SQL异常:无效的列类型。

可用的选项是使用setObject(int parameterIndex,Object x,int sqlType)或setNull,但是在那种情况下,我需要提供目标列的SQL类型,这似乎是不可能的。

谢谢

Ole*_*eev 5

您可以尝试将setNull与NULL类型一起使用:

if(myArray == null) {
    preparedStatement.setNull(i, Types.NULL);
}
Run Code Online (Sandbox Code Playgroud)

并且请遵循Java编码标准- 变量和方法都是小写字母!