当我尝试运行下面的代码时,我得到了:
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'?'附近使用正确的语法在第1行
String query="Select * from DB.Admin where username = ?";
PreparedStatement st=connection.prepareStatement(query);
st.setString(1,request.getParameter("loginid"));
ResultSet rst= st.executeQuery(query);
int count=0;
while(rst.next()){
count++;
}
请帮助我。
答案 0 :(得分:1)
您必须从query
来电中删除executeQuery
参数。如果您提供参数,则将执行查询而不绑定任何值(有关详细信息,请参阅Statement) - 这就是语法(即?
)无效的原因。
执行如下查询:
ResultSet rst = st.executeQuery();
作为旁注:您应该始终使用 try-with-resources 块包裹Connection
,PreparedStatement
和ResultSet
,例如
try (ResultSet rst = st.executeQuery()) {
// read the results
}
通过这种方式,无论发生什么情况,您都可以确定ResultSet
将被关闭。