Java PreparedStatement позволяет вам установить значение для данного параметра или установить его в NULL
SELECT *
FROM ADDRESS
WHERE ADDRESS_LINE1 = ?
чтобы мы могли написать код для установки этого параметра:
if (addressLine1 != null) {
preparedStatement.setString(1, addressLine1);
} else {
preparedStatement.setNull(1, VARCHAR);
}
однако также объявлено, что вы никогда не должны сравнивать значение со значением null, используя оператор =, и фактически использовать оператор IS для сравнения нулей.
Подготовленный оператор на самом деле заменяет оператор = для IS здесь, или же просто вставляется нулевое значение с использованием оператора =? Если последнее, то когда это когда-нибудь полезно, и вы действительно получаете ожидаемый результат?
Я задаю этот вопрос на обратной стороне следующего вопроса о переполнении стека
SQL имеет значение null и = null