使用原始 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 列的值null
用于此特定记录,这是完全合理的。毕竟,我曾经使用过的每个 RDBMS 都允许数字(INT、LONG 等)字段为 NULLABLE ......
那么解决方法是什么?