我正在尝试打印用户名和密码,但是代码两次输入了其他部分。
我为条件添加了打印功能。
在用户名和密码匹配的情况下,我收到了"Matched!"
和"Invalid username or password!"
消息。
在唯一的用户名匹配的情况下,我收到了"Username!"
和"Invalid username or password!"
消息。
在唯一密码匹配的情况下,我收到了"Password"
和"Invalid username or password!"
消息。
在没有匹配项的情况下,我两次收到"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!");
}
}
结果假设为“匹配!”输入有效的密码和用户名。 结果假定为“无效的用户名或密码!”用户名或密码无效。
答案 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!");
}