Tidak ada yang = NULL
. Jika Anda mengetik select * from test where value=NULL
menjadi evaluator kueri interaktif, Anda tidak akan mendapatkan apa-apa. JDBC tidak menulis ulang ekspresi Anda, itu hanya mengganti nilainya.
Anda harus menggunakan kueri menggunakan is
sebagai gantinya:
PreparedStatement select = c.prepareStatement("select * from test where value is NULL");
return select.executeQuery();
Anda telah mengatakan bahwa Anda mengharapkan JDBC menjadi "cukup pintar" untuk melakukan itu untuk Anda, tetapi itu akan menjadi pelanggaran besar terhadap pemisahan kekhawatiran. Anda mungkin ingin untuk memiliki parameter dalam kueri Anda menggunakan =
yang Anda atur NULL
mengetahui bahwa hubungan itu tidak akan pernah bernilai benar (sebagai bagian dari kumpulan kondisi yang lebih besar, kemungkinan besar).