JDBC PreparedStatement 中“null primitives”的解决方法?
2022-09-03 08:53:07
使用原始 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等)字段为NULL...
那么解决方法是什么呢?