0
まず、保存されたパスワードにアクセスするより良い方法があると私は理解しています。これは基本的な概念を証明しようとする基本的なプロジェクトです。データベースからパスワード値を取得しようとするとエラーが発生する
データベースのユーザーログインを検証しようとして問題が発生しています。
while(inputValue == null) {
System.out.println(PASSWORD_MESSAGE);
inputValue = in.nextLine();
try {
rs = statement.executeQuery(PASSWORD_QUERY);
while(rs.next()) {
System.out.println("TEST");
if(inputValue.equals(rs.getString("password"))) {
passwordValue = inputValue;
password= true;
break;
}
if(!inputValue.equals(rs.getString("password"))){
System.out.println(ERROR_MESSAGE);
inputValue = null;
break;
}
}
} catch(SQLException e) {
e.printStackTrace();
}
}
値PASSWORD_QUERY
は、私は二重のデータベースでこのクエリをチェックして、それが正常に動作しない(SELECT password FROM project.account WHERE username='" + usernameValue + "'
)
です。私のエラーはwhileループで発生します。デバッグモードではwhileループに入りません。system.out
メッセージ"TEST"はコンソールには決して行きません。
スキーマ名なしでクエリを実行できますか?すなわち、アカウントのWHERE username = '"+ usernameValue +"'のSELECT password from FROM account今、私がこれを言っている理由は限られています。それが決してループに入ってこない場合は、結果セットが空であることを意味し、それが空である理由を確認しようとします。これは最初のステップになる可能性があります –
私はループが始まっていないのですか? inputValue == nullそれはinputValueではありません!= null? – m0rjjj
ラマチャンドラン、同じ結果を動作しませんでした。 m0rjjjを明確にするには、コードが(rs.next())の間にループをスキップしている間にコードが取得される瞬間に、テーブルセット内に値があり、そこから情報を取得するテーブルがクリアされます。 – TheDeveloper