2016-08-17 28 views
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"はコンソールには決して行きません。

+0

スキーマ名なしでクエリを実行できますか?すなわち、アカウントのWHERE username = '"+ usernameValue +"'のSELECT password from FROM account今、私がこれを言っている理由は限られています。それが決してループに入ってこない場合は、結果セットが空であることを意味し、それが空である理由を確認しようとします。これは最初のステップになる可能性があります –

+1

私はループが始まっていないのですか? inputValue == nullそれはinputValueではありません!= null? – m0rjjj

+0

ラマチャンドラン、同じ結果を動作しませんでした。 m0rjjjを明確にするには、コードが(rs.next())の間にループをスキップしている間にコードが取得される瞬間に、テーブルセット内に値があり、そこから情報を取得するテーブルがクリアされます。 – TheDeveloper

答えて

0

エラーは、実際にdbのクエリにありました。クエリが使用していた変数は静的変数でした。私は定数の変数値が決して変化しないことに気付かなかった。

関連する問題