ResultSet.next () не выбирает jPasswordField && jTextField - PullRequest
0 голосов
/ 06 декабря 2018

В данный момент я создаю страницу входа, однако каждый раз, когда я пытаюсь войти, я получаю сообщение «Ваше имя пользователя и пароль не совпадают», даже если имя пользователя и пароль действительны и хранятся в базе данных.Я не могу понять это вообще, даже из других онлайн-ресурсов, а из того, что я могу сказать, это должно работать?

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

Заранее спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Ваш sql записан неправильно, вам нужно удалить лишние ' для username и password и добавить 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` = ?");
0 голосов
/ 06 декабря 2018

Ваш запрос неверен.

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

должно быть

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

Вы пропустили "ОТ".Также не следует хранить незашифрованные и не хэшированные пароли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...