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

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

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`

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

请帮帮我.

解决方法:

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

像这样执行查询

ResultSet rst = st.executeQuery();

作为旁注:您应始终使用try-with-resources块包装Connection,PreparedStatement和ResultSet,例如:

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

这样,无论发生什么,您都可以确保ResultSet将被关闭.

相关文章

连接数据库的方式:第一种方式:ODBC:开放数据库连接是微软...
JDBCRequest 使用VariableNamesmysql:数据库连接池对象var...
 1.JDBCDBC(JavaDataBaseConnectivity):Java数据库连接技术...
1.需要jar包的支持:java.sqljavax.sqlmysql-conneter-java....
1.简介Activiti是一个业务流程管理(BPM)框架,它是覆盖了业务...
1.JDBC体系系统一组规范:接口JDBC接口(API)包括两个层次:...