Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

DBUtils falha ao preencher campos de um Java Bean


Você pode corrigi-lo de duas maneiras:

De acordo com o documento dbutils,

Se você está mantendo uma classe como esta
public class SezioneMenuBean implements Serializable {

    private int idSezioneMenu;

    private String nome;

    private int ordine;

    public SezioneMenuBean() {
    }

    // Getters and setters for bean values

}

De acordo com a primeira solução, escreva suas consultas algo assim SELECT id_sezione_menu AS idSezioneMenu, name, ordine FROM sezione_menu .

Ou

Com base na segunda solução, você pode usar GenerousBeanProcessor que é uma subclasse de BeanProcessor ele ignora sublinhado e distinção entre maiúsculas e minúsculas do nome da coluna. Você não precisa implementar seu próprio BeanProcessor personalizado

GenerousBeanProcessor está disponível desde a versão 1.6 do commons-dbutils .

Uso:
// 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());
}