0

マネージド Bean でクエリを作成しています。コードは次のとおりです。

 try {
        PreparedStatement checkDB = (PreparedStatement) con.prepareStatement("SELECT * FROM boats where age= ? and color <> ?");
        checkDB.setString(1, (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("age"));
        checkDB.setString(1, (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("color"));
        ResultSet res=(ResultSet) checkDB.executeQuery();
        return res;
    } catch (Exception e) {
        return null;
    }

このクエリは、"color <> ?" という条件なしで機能すると確信しています。しかし、私が追加すると、これは機能しません。不等号演算子に問題があると思います。私はそれがどのように使用されているかを検索し、私が行ったのと同じ使用法を見ました. 「!=」も試しましたが、うまくいきませんでした。MySQL データベースを使用しています。誰でも助けることができますか?

ありがとう

4

2 に答える 2

2

間違ったパラメーター インデックスを使用しているため、機能していません。そのはず:

    checkDB.setString(1, (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("age"));
    checkDB.setString(2, (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("color"));
于 2013-07-10T06:59:09.507 に答える
1
    checkDB.setString(1, (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("color"));

次のようにする必要があります。

    checkDB.setString(2, (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("color"));
于 2013-07-10T06:59:24.447 に答える