执行SQL查询时出现MySQL语法错误

时间:2016-04-12 21:02:50

标签: mysql jdbc

当我尝试运行下面的代码时,我得到了:

  

您的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++;
}

请帮助我。

1 个答案:

答案 0 :(得分:1)

您必须从query来电中删除executeQuery参数。如果您提供参数,则将执行查询而不绑定任何值(有关详细信息,请参阅Statement) - 这就是语法(即?)无效的原因。

执行如下查询:

ResultSet rst = st.executeQuery();

作为旁注:您应该始终使用 try-with-resources 块包裹ConnectionPreparedStatementResultSet,例如

try (ResultSet rst = st.executeQuery()) {
    // read the results
}

通过这种方式,无论发生什么情况,您都可以确定ResultSet将被关闭。