Mettere il rowmapper nella classe del dominio

1

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?

    
posta Ariel 10.06.2018 - 22:16
fonte

0 risposte

Leggi altre domande sui tag