= NULL
はありません 。 select * from test where value=NULL
と入力した場合 インタラクティブなクエリエバリュエーターにすると、何も返されません。 JDBCは式を書き換えるのではなく、値を置き換えるだけです。
is
を使用してクエリを使用する必要があります 代わりに演算子:
PreparedStatement select = c.prepareStatement("select * from test where value is NULL");
return select.executeQuery();
あなたは、JDBCがあなたのためにそれを行うのに十分「賢い」ことを期待していると言いましたが、それは関心の分離の大きな違反になります。 欲しい =
を使用してクエリにパラメータを含める NULL
を設定します その関係が真と評価されることは決してないことを知っています(より多くの条件の一部として、おそらく)。