我在托管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&lt;&gt;?”。但是,当我添加这个不起作用。我认为我的不平等操作员存在问题。我搜索了它的使用方法,看到了和我一样的用法。我也试过“!=”但也没用。我正在使用MySQL数据库。有人可以帮忙吗?
由于
答案 0 :(得分:2)
由于您使用了错误的参数索引,因此无效。 它应该是:
checkDB.setString(1, (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("age"));
checkDB.setString(2, (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("color"));
答案 1 :(得分:1)
checkDB.setString(1, (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("color"));
应该是:
checkDB.setString(2, (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("color"));