【问题标题】:ResultSet.next() not selecting jPasswordField && jTextFieldResultSet.next() 没有选择 jPasswordField && jTextField
【发布时间】:2019-05-07 17:05:57
【问题描述】:

我现在正在创建一个登录页面,但是每次我尝试“登录”时,即使用户名和密码有效并存储在数据库中,我也会收到“您的用户名和密码不匹配”消息。即使从其他在线资源中我也无法弄清楚这一点,因为我可以告诉它应该工作?

private void jButtonLoginActionPerformed(java.awt.event.ActionEvent evt) 
{                                             
    Connection con = myConnection.getConnection();
    PreparedStatement pscon;
    ResultSet rscon;

    try 
    {
        pscon = con.prepareStatement("SELECT * dbname.user WHERE 'username' = ? AND 'password' = ?");
        pscon.setString(1, jTextFieldUsername.getText());
        pscon.setString(2, String.valueOf(jPasswordFieldPass.getPassword()));
        rscon = pscon.executeQuery();

        if(rscon.next())
        {
            JOptionPane.showMessageDialog(null, "Logged in successfully!");
        }
        else
        {
            JOptionPane.showMessageDialog(null, "Your username and password don't match!");
        }
    } 
    catch (SQLException ex) 
    {
        Logger.getLogger(LoginPage.class.getName()).log(Level.SEVERE, null, ex);
    }
}

提前感谢您的帮助!

【问题讨论】:

    标签: java mysql prepared-statement resultset


    【解决方案1】:

    您的查询有误。

    SELECT * dbname.user WHERE 'username' = ? AND 'password' = ?
    

    应该是

    SELECT * FROM dbname.user WHERE 'username' = ? AND 'password' = ?
    

    您错过了“FROM”。此外,您不应存储未加密和未散列的密码。

    【讨论】:

    • 在我输入时意识到这一点,但没有解决问题。下面由 lucumt 回答以从用户名和密码周围删除“''”。不过感谢您的回复!
    【解决方案2】:

    你的sql写错了,你需要去掉usernamepassword多余的'并添加FROM关键字

    所以改变

     pscon = con.prepareStatement("SELECT * dbname.user WHERE 'username' = ? AND 'password' = ?"); 
    

     pscon = con.prepareStatement("SELECT * FROM dbname.user WHERE username = ? AND password = ?");
    

    或添加`来包裹列名

     pscon = con.prepareStatement("SELECT * FROM dbname.user WHERE `username` = ? AND `password` = ?");
    

    【讨论】:

    • 仍然缺少 FROM。
    • 完美的你们俩终于搞定了!感谢您的帮助,感觉就像一个白痴被困在那个大声笑上那么久。
    猜你喜欢
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2012-01-07
    相关资源
    最近更新 更多