gpt4 book ai didi

java - JDBCPreparedStatement 中 "null primitives"的解决方法?

转载 作者:太空宇宙 更新时间:2023-11-04 13:07:09 27 4
gpt4 key购买 nike

当使用原始 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);

...

这里,如果 someStringnull ,这很好 - 字符串可以为空。但如果getSomeInteger()返回null ,我们遇到了问题。

PreparedStatement#setInt(int,int)设置一个原语 int作为值,因此不能是 null .

但是,我可能希望上面第三列的值为 null ,这是完全合理的。对于这个特定的记录。毕竟,我曾经使用过的每个 RDBMS 都允许数字(INT、LONG 等)字段为 NULLABLE...

那么解决方法是什么?

最佳答案

不要使用其中任何一个并使用 setObject相反,让 JDBC 驱动程序代替您管理 null 值。

关于java - JDBCPreparedStatement 中 "null primitives"的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34318476/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com