Skip to content
Advertisement

How to read value from mysql database based on condition?

I am doing a Java project to allow users to either log in as an admin or user based on what they selected from their account creation. I managed to do a code to check if their username and password were correct in my login page of the application by checking if those values are present in the database, however, I want the user to login as either an admin or user but I don’t know how to do that. Im thinking if I can read what they selected as (either user or admin) from their account creation in the database (refer below for picture of database columns), then I am able to do an if statement based on that. For example if(usertype == ‘admin’){ // then go to admin page} But usertype is a column in the database which I don’t know how to read.I have my code below as well which is function that activates whenever the login button is pressed.If you know of a solution, let me know thank you.

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

This is a picture of the columns that are in my database enter image description here

Advertisement

Answer

Since you’re doing a SELECT *, you should be able to access the usertype in your java code with something like

if(rs.next()){
    String userType = rs.getString("usertype");
    if(userType.equals("admin")){
        // your admin code here
    }else{
        // your user code here
    }
}
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement