1

私は 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"));
}

しかし、それは非常に「ハック」に思えます。これを行うより良い方法はありますか?

ありがとうございました

4

2 に答える 2