これに答えて検索しましたが、類似するものは見つかりませんでした。既に私の答えがあるかもしれない質問をチェックしましたが、もう一度解決策はありません。データベース接続が完了していないJavaログインメソッド
だからまず、ここでは完了しないコードは、次のとおりです。ここ
Class.forName(DRIVER);
Connection connection = DriverManager.getConnection(URL, USER,
PASS);
Statement statement = connection.createStatement();
e = email.getText();
p = password.getText();
String SQL = "SELECT email, password FROM healthcareProfessional WHERE email = '" + e
+ "' AND password = '" + p + "';";
ResultSet resultSet = statement.executeQuery(SQL);
while (resultSet.next()) {
if (email.getText().equals(resultSet.getString("email"))
&& password.getText().equals(resultSet.getString("password"))) {
Main.applyHomescreenLayout();
} else if (email.getText().equals("") || password.getText().equals("")) {
errorMessage.setText("Incorrect Email.");
errorMessage.setTextFill(Color.RED);
FadeTransition fadeTransition = new FadeTransition(Duration.millis(3000.0), errorMessage);
fadeTransition.setFromValue(3000.0);
fadeTransition.setToValue(0.0);
fadeTransition.playFromStart();
}
}
すべてが、私は、有効なログイン資格情報を入力して正常に動作します。しかし、電子メールまたはパスワードを空白のままにしてログインしようとすると、メッセージが表示されず、理由を理解できません。誰かが私を正しい方向に向けることができますか?
また、接続を削除すると、以下のコードが完全に機能し、メッセージが表示されます。
if (email.getText().equals("") || password.getText().equals("")) {
errorMessage.setText("Incorrect Email or Password.");
errorMessage.setTextFill(Color.RED);
FadeTransition fadeTransition = new FadeTransition(Duration.millis(3000.0), errorMessage);
fadeTransition.setFromValue(3000.0);
fadeTransition.setToValue(0.0);
fadeTransition.playFromStart();
}
私はまたのどれも働いていない、もし内の結果セット、ステートメントとの接続を閉じると、else文場合、.isEmptyと.equals(「」)を(置き換え)、および個別の結果セットを使用して試してみました。
例外がスローされますか? – jtahlborn
いいえ、例外はありません。 –
「else」ブロックにどのような条件でアクセスする予定ですか? –