JavaFX + MySQL Przypomnienie hasła

0

Witam.Mój kolejny problem polega na tym,że niewiem jak zrobić obsługe dla błędu, ze wybranego maila NIE MA w bazie danych.
Zrobilem ze jesli nie wpiszemy nic to otrzymamy message Wpisz tekst,a także jeśli podany email znajduje sie w bazie to wyświetlam Message z hasłem do konta.Oto kod.Dołączam takze screena GUI w załączniku.Pozdro

  if (FieldMail.getText().equals("")){
           System.out.println("Wypełnij Pole");
            
            message.setText("Wypełnij wszystkie pola");
            message.setTextFill(Color.rgb(210, 39, 30)); 
        } 
         else { 
            String query= "SELECT Haslo FROM `pracownik` WHERE Email ='"+FieldMail.getText()+"'";
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            c = (Connection) DriverManager.getConnection("jdbc:mysql://" + databaseHost + ":3306", logindb, passdb);
            st = (Statement) c.createStatement();
            st.execute("USE mene");
            ResultSet rs = st.executeQuery(query);
            rs.first();
            
            message.setText("Twoje haslo to :"+ rs.getString("Haslo"));
            message.setTextFill(Color.rgb(210, 39, 30)); 
            
1

Taki kod zawsze mnie przeraża... Nie można tego trochę uporządkować?

  if (isValidForm){
          showError(); 
        } 
         else { 
            connectDB();
            }
}
private boolean isValidForm(){
       return FieldMail.getText().equals("");
}

private void showError(){
            System.out.println("Wypełnij Pole");
            message.setText("Wypełnij wszystkie pola");
            message.setTextFill(Color.rgb(210, 39, 30));
}

private void connectDB(){
            String query= "SELECT Haslo FROM `pracownik` WHERE Email ='"+FieldMail.getText()+"'";
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            c = (Connection) DriverManager.getConnection("jdbc:mysql://" + databaseHost + ":3306", logindb, passdb);
            st = (Statement) c.createStatement();
            st.execute("USE mene");
            ResultSet rs = st.executeQuery(query);
            rs.first();
            
            message.setText("Twoje haslo to :"+ rs.getString("Haslo"));
            message.setTextFill(Color.rgb(210, 39, 30)); 
}

Już pomijam że łączenie się z bazą danych na warstwie widoku jest złym rozwiązaniem (powinieneś to wydziedziczyć do osobnej klasy) ale czy nie jest czytelniejszy kod?
A jeśli chcesz wiedzieć czy takiego mejla nie ma w bazie to sprawdź co zwraca Ci rs . Jeśli zwraca pusty wynik to znaczy że mejla w bazie nie ma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1