Intet er = NULL
. Hvis du skrev select * from test where value=NULL
ind i en interaktiv forespørgselsevaluator, ville du ikke få noget tilbage. JDBC omskriver ikke dit udtryk, det erstatter bare værdierne.
Du skal bruge en forespørgsel ved hjælp af is
operatør i stedet:
PreparedStatement select = c.prepareStatement("select * from test where value is NULL");
return select.executeQuery();
Du har sagt, at du forventer, at JDBC er "kloge" nok til at gøre det for dig, men det ville være en stor overtrædelse af adskillelsen af bekymringer. Du kan godt ønske at have en parameter i din forespørgsel ved hjælp af =
som du indstiller NULL
vel vidende, at det forhold aldrig vil blive vurderet sandt (hvilket sandsynligvis er en del af et større sæt betingelser).