Normalmente in java il RowMapper
è collocato nella sua classe.
Invece, per quanto riguarda questo progetto, inserendo RowMapper
all'interno di ciascun oggetto dominio e dando a tutti un nome coerente:
public class Address {
private String city;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public static class ThisRowMapper implements RowMapper<Address> {
@Override
public Address mapRow(ResultSet rs, int rowNum) throws SQLException {
Address address = new Address();
address.setCity(rs.getString("CITY"));
return address;
}
}
}
Quindi nella query:
new Address.ThisRowMapper()
Il pro è che il RowMapper
si trova proprio accanto all'oggetto dominio, quindi è facile (er) assicurarsi che tutti i campi siano mappati.
Ci sono dei contro a questo disegno che dovrei sapere?
Domanda successiva (ma la prima domanda è la mia domanda principale):
Potrei fare un ulteriore passo in avanti e aggiungere:
public static final ThisRowMapper thisRowMapper = new ThisRowMapper();
Quindi usalo:
Address.thisRowMapper
Questo mi permette di evitare di creare il tempo dell'oggetto RowMapper
, che probabilmente non è un grosso problema, ma dal momento che non danneggia la leggibilità, forse ne vale la pena?
E contro per questa seconda opzione?