在PreparedStatement中传递null值setObject方法给出了异常

时间:2013-03-08 08:59:50

标签: java null prepared-statement

我们有解决方案吗?

我的代码是这样的:

preparedStatement.SetObject(i , MyArray);

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

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

由于

2 个答案:

答案 0 :(得分:4)

您可以尝试使用NULL类型的setNull:

if(myArray == null) {
    preparedStatement.setNull(i, Types.NULL);
}

请遵循Java编码标准 - 变量和方法是初始小写!

答案 1 :(得分:2)

尝试:

preparedStatement.setObject(i , MyArray, java.sql.Types.ARRAY);

有了这些信息,这就是我能想到的。希望这应该有用。

阿比纳夫