私は Java で PreparedStatement を使用するのが初めてで、問題の最適な解決策を見つけられないようです。テーブル内の NULL または NOT NULL のレコードを照会したいと考えています。
PreparedStatement (Java Platform SE 6)を読んで、 setNullメソッドを使用する必要があることに気付きましたが、NOT NULL を設定する方法がわかりませんでした。
例えば:
SELECT * FROM table WHERE column IS NULL
私がやると思うことは次のとおりです。
public void query(boolean getNull) {
String querySql = "SELECT * FROM table WHERE column IS ?";
sqlStatement = connection.prepareStatement(querySql);
if(getNull)
sqlStatement.setNull(1, Types.VARCHAR);
else
???;
}
しかし、else ステートメントはどのようにすればよいでしょうか。setNotNull メソッドはありません。私はこれができると思います:
public void query(boolean getNull) {
String querySql = "SELECT * FROM table WHERE column IS ? NULL";
sqlStatement = connection.prepareStatement(querySql);
sqlStatement.setString(1, (getNull ? "" : "NOT"));
}
しかし、それは非常に「ハック」に思えます。これを行うより良い方法はありますか?
ありがとうございました