如何解决该代码中的“循环附加问题”?

时间:2019-01-19 23:29:24

标签: java database eclipse

我正在尝试打印用户名和密码,但是代码两次输入了其他部分。

我为条件添加了打印功能。

  1. 在用户名和密码匹配的情况下,我收到了"Matched!""Invalid username or password!"消息。

  2. 在唯一的用户名匹配的情况下,我收到了"Username!""Invalid username or password!"消息。

  3. 在唯一密码匹配的情况下,我收到了"Password""Invalid username or password!"消息。

  4. 在没有匹配项的情况下,我两次收到"Invalid username or password!"消息。

下面是代码

Statement myStmt = myConn.createStatement();
ResultSet resultSet = myStmt.executeQuery("SELECT * FROM `Employee`");
while(resultSet.next()) {
    if(resultSet.getString("username").matches(textField_1.getText()) && resultSet.getString("password").matches(textField_2.getText())) {
        System.out.println("Matched!");
    } else {
        System.out.println("Invalid username or password!");
    }
}

结果假设为“匹配!”输入有效的密码和用户名。 结果假定为“无效的用户名或密码!”用户名或密码无效。

2 个答案:

答案 0 :(得分:1)

Statement myStmt = myConn.createStatement();
ResultSet resultSet = myStmt.executeQuery("SELECT * FROM `Employee`");
boolean check = false;
while(resultSet.next()){ 
    if(resultSet.getString("username").matches(textField_1.getText()) && resultSet.getString("password").matches(textField_2.getText())){ 
        System.out.println("Matched!");
        check = true;
        break;
    }

}
if (check == false){

      System.out.println("Invalid username or password!");
}

现在,while循环将搜索正确的用户名和密码,否则将显示无效。

答案 1 :(得分:0)

基本上,您可以获得所有员工的详细信息,将其存储到resultSet中,但是随后要遍历每个员工。如果您拥有3组用户名和密码,并且只有一个匹配项,那么您将得到

Matched!
Invalid
Invalid

您可能只想检查一个用户名和密码?不确定您要寻找的是什么。另外,当您比较用户名和密码时,请使用.equals()。

编辑

编辑以上回答,使用.equals()代替.matches()

Statement myStmt = myConn.createStatement();

ResultSet resultSet = myStmt.executeQuery("SELECT * FROM `Employee`");

boolean check = false;

while(resultSet.next()){ 

    if(resultSet.getString("username").equals(textField_1.getText()) && 
       resultSet.getString("password").equals(textField_2.getText()))
    { 

        System.out.println("Matched!");
        check = true;
        break;

    }

}

if (check == false){

      System.out.println("Invalid username or password!");
}