Как прочитать значение из базы данных mysql в зависимости от условия? - PullRequest
0 голосов
/ 06 августа 2020

Я делаю проект Java, чтобы пользователи могли входить в систему как администратор или пользователь в зависимости от того, что они выбрали при создании своей учетной записи. Мне удалось сделать код, чтобы проверить правильность их имени пользователя и пароля на моей странице входа в приложение, проверив, присутствуют ли эти значения в базе данных, однако я хочу, чтобы пользователь входил в систему как администратор или пользователь, но я не Не знаю, как это сделать. Я думаю, могу ли я прочитать, что они выбрали как (пользователь или администратор) из создания своей учетной записи в базе данных (см. Изображение столбцов базы данных ниже), тогда я смогу сделать оператор if на основе этого. Например, if (usertype == 'admin') {// then go to admin page} Но usertype - это столбец в базе данных, который я не знаю, как читать. У меня также есть мой код ниже, который является функцией который активируется всякий раз, когда нажимается кнопка входа в систему. Если вы знаете решение, дайте мне знать, спасибо.

private void LoginButtonActionPerformed(java.awt.event.ActionEvent evt) {
    Connection con;
    PreparedStatement pst;
    ResultSet rs;                                            
        try{
            String query = "SELECT * FROM `accounts` WHERE username=? and password=?"; // and usertype=?
            con = DriverManager.getConnection("jdbc:mysql://localhost/restock", "root", "password");
            pst = con.prepareStatement(query);
            pst.setString(1, txtUsername.getText());
            pst.setString(2, txtPassword.getText());
            rs = pst.executeQuery();
            if(rs.next()){
                
                JOptionPane.showMessageDialog(this, "Login is successful as admin");
                mainpage admin = new mainpage();
                admin.setVisible(true);
                dispose();
            }
            else{
                JOptionPane.showMessageDialog(this, "Incorrect username or password");
                /*usermainpage user = new usermainpage();
                user.setVisible(true);
                dispose();*/
            }
            
        } catch(Exception ex){
            JOptionPane.showMessageDialog(this, ex.getMessage());
        }
        
        
        
    }  

Это изображение столбцов в моей базе данных введите описание изображения здесь

1 Ответ

1 голос
/ 06 августа 2020

Поскольку вы выполняете SELECT *, вы должны иметь возможность получить доступ к типу пользователя в вашем java коде с чем-то вроде

if(rs.next()){
    String userType = rs.getString("usertype");
    if(userType.equals("admin")){
        // your admin code here
    }else{
        // your user code here
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...