Nada es = NULL
. Si escribió select * from test where value=NULL
en un evaluador de consultas interactivo, no obtendrá nada a cambio. JDBC no reescribe su expresión, simplemente sustituye los valores.
Tienes que usar una consulta usando el is
operador en su lugar:
PreparedStatement select = c.prepareStatement("select * from test where value is NULL");
return select.executeQuery();
Ha dicho que espera que JDBC sea lo suficientemente "inteligente" para hacer eso por usted, pero eso sería una gran violación de la separación de intereses. Es posible que quiera tener un parámetro en su consulta usando =
que configuraste NULL
sabiendo que esa relación nunca se evaluará como verdadera (lo más probable es que sea parte de un conjunto más amplio de condiciones).