Du kopierar hela DB-tabellen till Javas minne och gör jämförelsen på en while
loop över alla poster. Du avbryter inte while
loop när det finns en matchning med en post, så den fortsätter att loopa över de återstående posterna och så pagename
blir åsidosatt med "start" varje gång.
Du måste lägga till en break
uttalande:
if (results.getString(2).equals(password) && results.getString(1).equals(username)) {
pagename="main";
break;
}
Eller, bättre, låt SQL göra jobbet den är designad för, genom att välja och returnera exakt data du behöver:
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 är mer effektivt och förnuftigt.