Récupérer enregistrement dans ArrayList
Résolu/Fermé
A voir également:
- Récupérer enregistrement dans ArrayList
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupérer mon compte facebook désactivé - Guide
2 réponses
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
27 févr. 2021 à 11:21
27 févr. 2021 à 11:21
Bonjour,
Il faut que tu sépares ton code en deux : l'entité d'une part, le DAO d'autre part.
De plus, il faut éviter autant que possibles les variables static, si c'est mal maîtrisé comme ici, cela peut rapidement faire n'importe quoi.
Voici une correction possible. À noter que les attributs code, nom et prenom étant hérités de la classe Personne, les méthodes get/set correspondant devraient aussi en être hérités.
Il faut que tu sépares ton code en deux : l'entité d'une part, le DAO d'autre part.
De plus, il faut éviter autant que possibles les variables static, si c'est mal maîtrisé comme ici, cela peut rapidement faire n'importe quoi.
Voici une correction possible. À noter que les attributs code, nom et prenom étant hérités de la classe Personne, les méthodes get/set correspondant devraient aussi en être hérités.
package entite; //pour la gestion des propriétés Date import java.util.Date; public class Client extends Personne { private boolean carteFidelite; private Date dateCreation; public Client(){ super(); } public Client(String vCode) { super(vCode); } public Client(String vCode, String vNom, String vPrenom) { super(vCode, vNom, vPrenom); } public Client(String vCode, String vNom, String vPrenom, boolean vCarteFidele, Date vDateCreation) { super(vCode, vNom, vPrenom); carteFidelite = vCarteFidele; dateCreation = vDateCreation; } public Date getDateCreation(){ return dateCreation; } public void setDateCreation(Date dateCreation) { this.dateCreation = dateCreation; } public boolean getCarteFidelite(){ return carteFidelite; } public void setCarteFidelite(boolean carteFidelite) { this.carteFidelite = carteFidelite; } @Override public String toString(){ return super.toString() + " Client [carteFidelite=" + carteFidelite + ", dateCreation=" + dateCreation + "]"; } }
package dao; import entite.Client; //pour les requêtes sql import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; //pour la structure d'accueil des données import java.util.ArrayList; import java.util.List; //pour la gestion des propriétés Date import java.util.Date; //pour les boîtes de dialogue import javax.swing.JOptionPane; //pour la connexion à la BD import controle.connection.ControleConnexion; public class ClientDao { public static List<Client> getAllClientsOrderByNom(){ List<Client> result = new ArrayList<>(); try (Connection conn = ControleConnexion.getLaConnectionStatique(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM clients ORDER BY nom")) { while (rs.next()) { result.add(getClient(rs)); } System.out.println(result.size()); } catch (RuntimeException | SQLException e) { e.printStackTrace(); JOptionPane.showMessageDialog(null, "PROBLEME RENCONTRE : " + e.getMessage(), "resultat", JOptionPane.ERROR_MESSAGE); } return result; } private static Client getClient(ResultSet rs) throws SQLException { String code = rs.getString("code"); String nom = rs.getString("nom"); String prenom = rs.getString("prenom"); boolean carteFidelite = rs.getBoolean("carte_fidele"); Date dateCreation = rs.getDate("date"); return new Client(code, nom, prenom, carteFidelite, dateCreation); } public static void main(String[] args) { System.out.println(ClientDao.getAllClientsOrderByNom()); } }