当我尝试运行下面的代码时,我得到:
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将被关闭.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。