我在mySQL中有一个selectState查询的prepareStatement。
这就是我写的:
String sQuery = "SELECT Password FROM test WHERE Email = ?";
st = DB.prepareStatement(sQuery);
st.setString(1, email);
ResultSet rs = st.executeQuery(sQuery);
但我从glassfish服务器获得一个例外说明:
Severe: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near '?' at line 1
我不明白是什么问题..我看到的所有样本都使用了这种语法..
答案 0 :(得分:4)
您必须在不将查询作为参数的情况下调用st.executeQuery()
。该查询在准备好时已经传递给该语句。
请参阅http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#executeQuery%28%29
答案 1 :(得分:1)
st.executeQuery()
即没有执行查询的参数