Como lidar com (talvez) valores nulos em um PreparedStatement?
A afirmação é
SELECT * FROM tableA WHERE x = ?
e o parâmetro é inserido via java.sql.PreparedStatement 'stmt'
stmt.setString(1, y); // y may be null
E sey
é nulo, a instrução não retorna linhas em todos os casos porquex = null
é sempre falso (deve serx IS NULL
) Uma solução seria
SELECT * FROM tableA WHERE x = ? OR (x IS NULL AND ? IS NULL)
Mas então eu tenho que definir o mesmo parâmetro duas vezes. Existe uma solução melhor?
Obrigado!