Nichts ist = NULL
. Wenn Sie select * from test where value=NULL
eingegeben haben in einen interaktiven Abfrageauswerter, würden Sie nichts zurückbekommen. JDBC schreibt Ihren Ausdruck nicht neu, es ersetzt nur die Werte.
Sie müssen eine Abfrage mit is
verwenden Operator stattdessen:
PreparedStatement select = c.prepareStatement("select * from test where value is NULL");
return select.executeQuery();
Sie haben gesagt, dass Sie erwarten, dass JDBC "klug" genug ist, dies für Sie zu tun, aber das wäre ein großer Verstoß gegen die Trennung von Anliegen. Sie können wollen um einen Parameter in Ihrer Abfrage mit =
zu haben die Sie NULL
setzen wissend, dass diese Beziehung niemals als wahr bewertet wird (höchstwahrscheinlich als Teil einer größeren Menge von Bedingungen).