Mysql
 sql >> Base de données >  >> RDS >> Mysql

DBUtils ne parvient pas à remplir les champs d'un bean Java

Vous pouvez y remédier de deux manières :

Selon la doc dbutils,

Si vous gardez une classe comme celle-ci

public class SezioneMenuBean implements Serializable {

    private int idSezioneMenu;

    private String nome;

    private int ordine;

    public SezioneMenuBean() {
    }

    // Getters and setters for bean values

}

Selon la première solution, écrivez vos requêtes quelque chose comme ceci SELECT id_sezione_menu AS idSezioneMenu, name, ordine FROM sezione_menu .

Ou

Sur la base de la deuxième solution, vous pouvez utiliser GenerousBeanProcessor qui est une sous-classe de BeanProcessor il ignore le trait de soulignement et la sensibilité à la casse du nom de la colonne. Vous n'avez pas besoin d'implémenter votre propre BeanProcessor personnalisé

GenerousBeanProcessor est disponible depuis la version 1.6 de commons-dbutils .

Utilisation :

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