Java PreparedStatementは、Null値を明示的に設定する可能性を提供します。この可能性は次のとおりです。
prepStmt.setNull(parameterIndex, Types.VARCHAR);
この呼び出しのセマンティクスは、nullパラメーターで特定のsetTypeを使用する場合と同じですか?
prepStmt.setString(null);
?
この ガイド の意味:
6.1.5 JDBC NULLをINパラメーターとして送信する
SetNullメソッドを使用すると、プログラマはJDBC NULL(汎用SQL NULL)値をINパラメーターとしてデータベースに送信できます。ただし、パラメーターのJDBCタイプを指定する必要があることに注意してください。
Java null値がsetXXXメソッドに渡される場合(引数としてJavaオブジェクトを使用する場合)。JDBCNULLもデータベースに送信されます。ただし、setObjectメソッドは、JDBCタイプが指定されている場合にのみnull値を取ることができます。
はい、それらは同等です。
しかし、これに注意してください....
Long nullLong = null;
preparedStatement.setLong( nullLong );
-NULLポインター例外を処理します-
プロタイプは
setLong( long )
ない
setLong( Long )
ええ、あなたを捕まえるのにいいものです。
最後に小さなテストを行いましたが、プログラミング中に、setNull(..)メソッドがなければJavaプリミティブにnull値を設定する方法はないということに気付きました。オブジェクトの両方の方法
setNull(..)
そして
set<ClassName>(.., null))
同じように振る舞います。
preparedStatement.setObject(index,value,type);
の使用も検討できます