Nic není = NULL
. Pokud jste zadali select * from test where value=NULL
do interaktivního vyhodnocovače dotazů, nedostanete zpět nic. JDBC nepřepisuje váš výraz, pouze dosazuje hodnoty.
Musíte použít dotaz pomocí is
operátor místo toho:
PreparedStatement select = c.prepareStatement("select * from test where value is NULL");
return select.executeQuery();
Řekl jste, že očekáváte, že JDBC bude dostatečně „chytrá“, aby to udělala za vás, ale to by bylo velkým porušením oddělení zájmů. Možná chcete mít parametr v dotazu pomocí =
které nastavíte NULL
s vědomím, že tento vztah nebude nikdy vyhodnocen jako pravdivý (s největší pravděpodobností jako součást většího souboru podmínek).