Transformer un ResultSet en ArrayList

La possibilité de transformer un ResultSet en ArrayList est particulièrement intéressante, surtout dans le contexte d’un DAO (Data Access Object) lorsqu’on souhaite récupérer une liste d’objets. Voici un exemple code source qui permet d’effectuer cette transformation.

// Récupération d'une liste d'objets personnes à partir d'une source de données
public Collection<Personne> getAll() throws SQLException {
    Collection<Personne> collPersonnes = new ArrayList<Personne>();
 
    String sql = "select * from PERSONNES";
 
    // Récupèration de connection SQL à partir d'une Factory faite maison
    Connection connection = OracleDAOFactory.createConnection();
 
    PreparedStatement pst = connection.prepareStatement(sql);
 
    ResultSet rs = pst.executeQuery();
   
    Personne personne = null;
     
    while (rs.next()) {
      personne = new Personne(); // Nouvelle instance de personne
       
      personne.setNom( rs.getString(1) );
      personne.setPrenom( rs.getString(2) );
      // Autres champs
 
      collPersonnes.add( personne ); // Ajout à la collection
    }
 
    return collPersonnes; // Retour de la fonction
  }
}

Il est aussi possible de parcourir les colonnes une à une de la manière suivante:

ResultSetMetaData rsmd = rs.getMetaData(); // Récupération des métadonnées
 
for (int i = 1; i <= rsmd.getColumnCount(); i++){
      record.add(rs.getString(i));
}

– James Poulson.