PreparedStatement setNull(..)
Java PreparedStatement предоставляет возможность явно установить нулевое значение. Такая возможность есть:
prepStmt.setNull(parameterIndex, Types.VARCHAR);
является ли семантика этого вызова такой же, как при использовании определенного типа настройки с нулевым параметром?
prepStmt.setString(null);
?
4 ответа:
этой руководство говорит:
6.1.5 отправка JDBC NULL в качестве параметра IN
метод setNull позволяет программисту отправлять значение JDBC NULL (generic SQL NULL) в базу данных в качестве параметра IN. Обратите внимание, однако, что все равно необходимо указать тип JDBC параметра.
значение JDBC NULL также будет отправлено в базу данных, когда значение Java null передается методу setXXX (если он принимает объекты Java в качестве аргументов). Метод setObject , однако может принимать значение null только в том случае, если указан тип JDBC.
Так что да, они равнозначны.
но следите за этим....
Long nullLong = null; preparedStatement.setLong( nullLong );
- thows исключение нулевого указателя -
потому что protype-это
setLong( long )
не
setLong( Long )
приятно было тебя застать.