PreparedStatement setNull(..)

2022-08-31 10:29:09

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

prepStmt.setNull(parameterIndex, Types.VARCHAR);

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

prepStmt.setString(null);

?


答案 1

但要注意这一点...

Long nullLong = null;

preparedStatement.setLong( nullLong );

-thows 空指针异常-

因为原型是

setLong( long )   

setLong( Long )

很好,可以抓住你。


答案 2

本指南说:

6.1.5 将 JDBC NULL 作为 IN 参数发送

该方法允许程序员将JDBC(通用SQL)值作为IN参数发送到数据库。但是,请注意,仍必须指定参数的 JDBC 类型。setNullNULLNULL

当 Java 值传递给方法时(如果它将 Java 对象作为参数),也会将 JDBC 发送到数据库。但是,仅当指定了 JDBC 类型时,该方法才能取值。NULLnullsetXXXsetObjectnull

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


推荐