DBテーブル全体をJavaのメモリにコピーし、while
で比較を行っています。 すべてのレコードをループします。 while
を中止していません レコードと一致する場合はループするため、残りのレコードをループし続けるため、pagename
毎回「開始」で上書きされます。
break
を追加する必要があります ステートメント:
if (results.getString(2).equals(password) && results.getString(1).equals(username)) {
pagename="main";
break;
}
または、より良いのは、SQLに設計された仕事をさせ、正確にを選択して返すことです。 必要なデータ:
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";
}
それはより効率的で賢明です。