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。
添加回答
舉報