¿Cómo lidiar con (quizás) valores nulos en un PreparedStatement?
La declaración es
SELECT * FROM tableA WHERE x = ?
y el parámetro se inserta a través de java.sql.PreparedStatement 'stmt'
stmt.setString(1, y); // y may be null
Siy
es nulo, la declaración no devuelve filas en todos los casos porquex = null
siempre es falso (debería serx IS NULL
) Una solución sería
SELECT * FROM tableA WHERE x = ? OR (x IS NULL AND ? IS NULL)
Pero luego tengo que establecer el mismo parámetro dos veces. ¿Hay una mejor solución?
¡Gracias!