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).