Java PreparedStatement предоставляет возможность явно установить значение Null. Эта возможность:
prepStmt.setNull(parameterIndex, Types.VARCHAR);
Семантика этого вызова такая же, как при использовании определенного setType с нулевым параметром?
prepStmt.setString(null);
?
источник
но остерегайтесь этого ....
Long nullLong = null; preparedStatement.setLong( nullLong );
-выводит исключение нулевого указателя-
потому что прототип
setLong( long )
НЕ
приятно поймать тебя да.
источник
Наконец, я провел небольшой тест, и пока я программировал, мне пришло в голову, что без метода setNull (..) не было бы возможности установить нулевые значения для примитивов Java. Для объектов в обоих направлениях
а также
set<ClassName>(.., null))
веди себя так же.
источник
Вы также можете рассмотреть возможность использования
preparedStatement.setObject(index,value,type);
источник
это должно работать для любого типа. Хотя в некоторых случаях сбой происходит на стороне сервера, например: для SQL:
Oracle 18XE
сбой неправильного типа: ожидаемыйDATE
, полученныйSTRING
- это вполне допустимый сбой;Итог: хорошо знать тип, если вы звоните
.setNull()
источник