Du kopierer hele DB-tabellen ind i Javas hukommelse og laver sammenligningen om et while
sløjfe over alle poster. Du afbryder ikke while
sløjfe, når der er et match med en post, så den fortsætter med at sløjfe over de resterende poster og så pagename
blive tilsidesat med "start" hver gang.
Du skal tilføje en break
erklæring:
if (results.getString(2).equals(password) && results.getString(1).equals(username)) {
pagename="main";
break;
}
Eller bedre, lad SQL gøre det arbejde, det er designet til, ved at vælge og returnere præcis de data, du har brug for:
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";
}
Det er mere effektivt og fornuftigt.