• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Bazy danych, szczegóły implementacyjne.

0 głosów
348 wizyt
pytanie zadane 8 lutego 2019 w Java przez Michał Gibas Pasjonat (19,630 p.)
edycja 8 lutego 2019 przez Michał Gibas

Witam!

Ostatnio przerzucam się z C++ na Javę i po zrobieniu kilku projekcików wcześniej zabieram się za mały projekt czegoś w rodzaju systemu dla np. biblioteki publicznej oparty na komunikacji z bazą MySQL. I mam taką o to klasę:

public class Person {
    private String name, surname, address;
    private Date birthDate;
    private int ID;

    public void printData(){
        System.out.println("ID: "+ID);
        System.out.println("Name: "+name);
        System.out.println("Surname: "+surname);
        System.out.println("Birth date: "+birthDate);
    }

    public void fetchFromDatabaseByID(int ID, Connection connection) throws SQLException {
        try{
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT * FROM Persons WHERE `ID`="+ID);
            this.getDataFromResultSet(resultSet);
        } catch (SQLException exception){
            throw exception;
        } finally {
            try {
                if (connection != null) connection.close();
            } catch(SQLException exception){
                throw exception;
            }
        }
    }

    private void getDataFromResultSet(ResultSet resultSet) throws SQLException {
        try {
            ID = resultSet.getInt("ID");
            name = resultSet.getString("Name");
            surname = resultSet.getString("Surname");
            address = resultSet.getString("Address");
            birthDate = resultSet.getDate("BirthDate");
        } catch(SQLException exception){
            throw exception;
        }
    }
}

Co o tym sądzicie? Zastanawiałem się jeszcze nad zrobieniem z tego po prostu struktury z publicznymi polami, a za pobieranie danych z bazy odpowiadałaby inna klasa, która zwracałaby taką strukturę. Które podejście jest waszym zdaniem lepsze?

Z góry dziękuję za odpowiedzi! ;)

1 odpowiedź

+1 głos
odpowiedź 8 lutego 2019 przez mbabane Szeryf (79,260 p.)

Zdecydowanie to.: 

zrobieniem z tego po prostu struktury z publicznymi polami, a za pobieranie danych z bazy odpowiadałaby inna klasa, która zwracałaby taką strukturę

Tylko prywatne pola i gettery settery, jeśli zapytasz czemu to odpowiedź brzmi Java.

komentarz 8 lutego 2019 przez Michał Gibas Pasjonat (19,630 p.)
Dzięki za odpowiedź! :)

Podobne pytania

–1 głos
2 odpowiedzi 534 wizyt
pytanie zadane 23 czerwca 2018 w Java przez Kaska2018 Nowicjusz (120 p.)
+2 głosów
0 odpowiedzi 423 wizyt
0 głosów
0 odpowiedzi 123 wizyt
pytanie zadane 8 kwietnia 2020 w SQL, bazy danych przez hellowo Nowicjusz (220 p.)

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,786 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...