如何根据条件从mysql数据库中读取值?

sg24os4d  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(275)

我正在做一个java项目,允许用户以管理员或用户的身份登录,这取决于他们从帐户创建中选择的内容。我设法做了一个代码来检查他们的用户名和密码是否正确在我的应用程序登录页,通过检查这些值是否存在于数据库中,但是,我希望用户以管理员或用户身份登录,但我不知道如何做到这一点。我在想,如果我可以从他们在数据库中创建的帐户中读取他们选择的内容(用户或管理员)(请参阅下面的数据库列图片),那么我就可以基于此执行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());
        }

    }

这是我数据库中列的图片

guz6ccqo

guz6ccqo1#

因为您正在执行select*,所以您应该能够通过如下方式访问java代码中的用户类型

if(rs.next()){
    String userType = rs.getString("usertype");
    if(userType.equals("admin")){
        // your admin code here
    }else{
        // your user code here
    }
}

相关问题