Gian7
Gian7

Reputation: 203

How to verify username and password in Java-mysql?

How do I verify in the most right way the username and password that were inputted by the user to the database?

In c++, we used to verify by using if-else:
    if((user == "username")&&(pass == "password")){
             cout<<"You are now logon!";
    }

In java-mysql I'm not sure if I'm on the right track:

Login Button

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:

        user = jTextField1.getText();
        pass = jPasswordField1.getPassword();
        login();
}

Method/function

private void login() {

        try {
                if (user != null) {
                sql = "Select * from users_table Where username='" + user + "'";
                rs = stmt.executeQuery(sql);

                rs.next();
                username = rs.getString("username");
                password = rs.getString("password");

            }
        } 
    catch (SQLException err) {
            JOptionPane.showMessageDialog(this, err.getMessage());
        }

}

If the username and password that inputted by the user matched with the ones in the database then he will be directed to a new jFrame else message dialog will popup saying invalid username or password. Can someone help me with my codes, I don't know how to use the if-else statement with mysql;

Thanks! :)

Upvotes: 4

Views: 41167

Answers (5)

ath j
ath j

Reputation: 367

Use prepared statements along with a library like DButils which would simplify your work a lot.

In addition, don't use substitution pass parameters such as select name from members where code =?. If you have many parameters, create a array of objects and pass them in a object array such as Objects[] parms = {code1,code2}.

Upvotes: 0

savan patidar
savan patidar

Reputation: 11

if (username.length()>0 && password.length()>0)
{
    String query = "Select * from adminlogin Where Username='" + username + "' and Password='" + password + "'";

    rs = sta.executeQuery(query);

   if (rs.next()) 
   {

        home hme=new home();
        this.setVisible(false);
        hme.setVisible(true);
   } 
   else 
   {
       JOptionPane.showMessageDialog(null,"username and password are wrong ");
   }
}
else
{
      JOptionPane.showMessageDialog(null,"please field username and password ");
}

Upvotes: -1

Hayat Behlim
Hayat Behlim

Reputation: 386

Implement the below code:

private void login() {
    try {
        if (user != null && pass != null) {
            String sql = "Select * from users_table Where username='" + user + "' and password='" + pass + "'";
            rs = stmt.executeQuery(sql);
            if (rs.next()) {
                //in this case enter when at least one result comes it means user is valid
            } else {
                //in this case enter when  result size is zero  it means user is invalid
            }
        }

        // You can also validate user by result size if its comes zero user is invalid else user is valid

    } catch (SQLException err) {
        JOptionPane.showMessageDialog(this, err.getMessage());
    }

}

Upvotes: 2

Obl Tobl
Obl Tobl

Reputation: 5684

you don't have to do anything with mySQL anymore. You already have the credentials. One Example:

if ((user.equals(username)) && (pass.equals(password))) {
   JFrame newFrame = new JFrame();
} else {
   JOptionPane.showMessageDialog(null, "alert", "alert", JOptionPane.ERROR_MESSAGE); 
}

Upvotes: 0

Apurv
Apurv

Reputation: 3753

  • Always store Hash encrypted passwords in database, refer JASYPT for more details on encrypting passwords
  • Encrypt the password entered by the user and compare the two encrypted passwords
  • Use parametrized queries while querying database

Upvotes: 2

Related Questions