参见英文答案 > JDBC:Inserting null to Integer column 2个
使用原始JDBC时,您可以参数化PreparedStatement,如下所示:
PreparedStatement statement = connection.prepareStatement(someSQLString); String someString = getSomeString(); Integer int = getSomeInteger(); statement.setString(1, someString); statement.setLong(2, 5L); statement.setInt(3, int); ...
在这里,如果someString为null,那很好 – 字符串可以为空.但是如果getSomeInteger()返回null,我们就会遇到问题.
PreparedStatement#setInt(int,int)将原始int设置为值,因此不能为null.
但是,我可能希望上面第3列的值对于此特定记录为空是完全合理的.毕竟,我曾经使用的每个RDBMS都允许数字(INT,LONG等)字段为NULLABLE …
那么解决方法是什么?