2 回答

TA贡献1155条经验 获得超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!");
}

TA贡献1854条经验 获得超8个赞
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 循环将搜索正确的用户名和密码,如果没有将打印 Invalid。
添加回答
举报