【问题标题】:Prepared statement error when trying to receive password from DB尝试从数据库接收密码时准备好的语句错误
【发布时间】:2014-03-26 14:36:00
【问题描述】:

我在这个方法中遇到错误:

public String databaseServer(String email)throws IllegalArgumentException {
    Connection dbCon = null;
    Statement stmt = null;
    String password = null;

    System.out.print(email);
    String query = "SELECT password FROM user WHERE email = ?";

    try {
        dbCon = initializeDBConnection(); 
        PreparedStatement preparedStatement = dbCon.prepareStatement(query);
        preparedStatement.setString(1, email);
        ResultSet rs = preparedStatement.executeQuery(query);
        while (rs.next()) {
            password = rs.getString("password");    
        }
    } catch (SQLException ex) {
        Logger.getLogger(Collection.class.getName())
           .log(Level.SEVERE, null, ex);
    } 
    //close connection ,stmt and resultset here       
    return password;
}

错误是:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在“?”附近使用的正确语法在第 1 行

我检查了连接和传入的字符串,它们都工作正常。

有人知道我做错了什么吗?

【问题讨论】:

    标签: java mysql prepared-statement


    【解决方案1】:

    代替

    ResultSet rs = preparedStatement.executeQuery(query);
    

    ResultSet rs = preparedStatement.executeQuery();
    

    【讨论】:

    • 谢谢您的好先生! (我会在 11 分钟内将答案标记为正确)
    猜你喜欢
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 2014-06-18
    • 2014-06-11
    • 1970-01-01
    相关资源
    最近更新 更多