Mysql
 sql >> Database >  >> RDS >> Mysql

DBUtils non riesce a compilare i campi di un Java Bean

Puoi risolverlo in due modi:

Come da dbutils doc,

Se stai tenendo una classe come questa

public class SezioneMenuBean implements Serializable {

    private int idSezioneMenu;

    private String nome;

    private int ordine;

    public SezioneMenuBean() {
    }

    // Getters and setters for bean values

}

Come prima soluzione scrivi le tue query qualcosa del genere SELECT id_sezione_menu AS idSezioneMenu, name, ordine FROM sezione_menu .

Oppure

Sulla base della seconda soluzione puoi usare GenerousBeanProcessor che è una sottoclasse di BeanProcessor ignora il carattere di sottolineatura e la distinzione tra maiuscole e minuscole dal nome della colonna. Non è necessario implementare il proprio BeanProcessor personalizzato

GenerousBeanProcessor è disponibile dalla versione 1.6 di commons-dbutils .

Utilizzo:

// TODO initialize
QueryRunner queryRunner = null;

ResultSetHandler<List<SezioneMenuBean>> resultSetHandler =
                new BeanListHandler<SezioneMenuBean>(SezioneMenuBean.class, new BasicRowProcessor(new GenerousBeanProcessor()));

// best practice is specifying only required columns in the query
// SELECT id_sezione_menu, name, ordine FROM sezione_menu
final List<SezioneMenuBean> sezioneMenuBeans = queryRunner.query("SELECT * FROM sezione_menu", resultSetHandler);

for (SezioneMenuBean sezioneMenuBean : sezioneMenuBeans) {
    System.out.println(sezioneMenuBean.getIdSezioneMenu());
}