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! ;)