Sie kopieren die gesamte DB-Tabelle in den Speicher von Java und führen den Vergleich in einem while
durch Loop über alle Datensätze. Sie brechen while
nicht ab Schleife, wenn es eine Übereinstimmung mit einem Datensatz gibt, also fährt es fort, die verbleibenden Datensätze und damit den pagename
zu durchlaufen jedesmal mit "start" überschrieben werden.
Sie müssen einen break
hinzufügen Aussage:
if (results.getString(2).equals(password) && results.getString(1).equals(username)) {
pagename="main";
break;
}
Oder, besser gesagt, lassen Sie SQL die Aufgabe erledigen, für die es entwickelt wurde, indem es genau auswählt und zurückgibt die Daten, die Sie benötigen:
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";
}
Das ist effizienter und sinnvoller.