java - SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 '? AND password=?' 附近使用的正确语法

标签 java jsp jakarta-ee

感谢您访问我的问题:D 我正在尝试完成我的项目,但我遇到了 sql 问题。 这是我的代码,我不知道为什么,也不知道如何修复它。 我使用 java ee - Eclip 来执行此操作。 (我创建JSP网站)

try{                     
    String sql = "SELECT User_Name, Password, Gender FROM User_Account WHERE User_Name=? AND password=? ";
    PreparedStatement pstm= conz.prepareStatement(sql);                 
    ResultSet rs=pstm.executeQuery(sql);         
    String user_name=null;
    String pass_word=null;

    while(rs.next()){
        user_name=rs.getString(1);
        pass_word=rs.getString(2);

         }

if(user_name.equals(userName)&&pass_word.equals(password)){
    response.sendRedirect(request.getContextPath() + "/userInfo");
    hasError = true;
    errorString = "Connected ";
} else {               
    hasError = true;
    errorString = "Wrong user or pass!"              
} 

运行时会出现一条通知“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以获取在 '? AND password=?' 附近使用的正确语法。在第 1 行” 请帮我解决它。 提前致谢。

最佳答案

如果您设置了 ? 标记,则必须填充它们:

String sql = "SELECT User_Name, Password, Gender FROM User_Account WHERE User_Name=? AND password=? ";
PreparedStatement pstm= conz.prepareStatement(sql); 
pstm.setString(1,"John Doe");
pstm.setString(2,"12345");
ResultSet rs=pstm.executeQuery();

这样做,你的 SQL 语法就会正确。

关于java - SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 '? AND password=?' 附近使用的正确语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046993/

相关文章:

Java:在字符串中,如何提取正则表达式匹配之前的数字?

java - ActiveMQ异常连接和域类型不匹配

javascript - 使用不同的数据并排呈现单个 jsp/html 页面(比较 View )

java - 我可以使用 JSP 但不能使用 JavaBean 和 Java EE 吗?

java - 业务代表与服务定位器

java - JFXTextField 不适用于 JxBrowser

java - 为什么 Guice 阻止绑定(bind)到 Provider?

java - Struts 2 拦截器重定向不适用于 Ajax

javascript - 如何从 Web 应用程序在客户端计算机上创建临时文件?

java - 如何将jar文件中的EJB注入(inject)另一个war文件中的severlet?