Anda menyalin seluruh tabel DB ke dalam memori Java dan melakukan perbandingan dalam while
loop atas semua catatan. Anda tidak membatalkan while
loop ketika ada kecocokan dengan catatan, sehingga terus mengulang catatan yang tersisa dan begitu juga pagename
ditimpa dengan "mulai" setiap saat.
Anda perlu menambahkan break
pernyataan:
if (results.getString(2).equals(password) && results.getString(1).equals(username)) {
pagename="main";
break;
}
Atau, lebih baik, biarkan SQL melakukan pekerjaan yang dirancang untuknya, memilih dan mengembalikan tepat data yang Anda butuhkan:
preparedStatement = connection.prepareStatement("SELECT id FROM user WHERE username=? AND password=MD5(?)");
preparedStatement.setString(1, username);
preparedStatement.setString(2, password);
resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
pagename = "main";
}
else {
pagename = "start";
}
Itu lebih efisien dan masuk akal.