PreparedStatement setNull(..)

新手上路,请多包涵

Java PreparedStatement 提供了明确设置 Null 值的可能性。这种可能性是:

 prepStmt.setNull(parameterIndex, Types.VARCHAR);

此调用的语义是否与使用带有 null 参数的特定 setType 时的语义相同?

 prepStmt.setString(null);

原文由 paweloque 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

指南 说:

6.1.5 将 JDBC NULL 作为 IN 参数发送

setNull 方法允许程序员将 JDBC NULL (一个通用 SQL NULL IN 参数)作为 IN 参数发送给数据库-。但是请注意,仍然必须指定参数的 JDBC 类型。

当 Java null 值传递给 setXXX 参数时,JDBC NULL 也将被发送到数据库。但是,方法 setObject 可以采用 null 只有指定了 JDBC 类型的值。

所以是的,它们是等价的。

原文由 djna 发布,翻译遵循 CC BY-SA 4.0 许可协议

但要注意这个……

 Long nullLong = null;

preparedStatement.setLong( nullLong );

-thows空指针异常-

因为原型是

setLong( long )

不是

setLong( Long )

很高兴能把你赶出去嗯。

原文由 Owen 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题