Récupérer enregistrement dans ArrayList
Résolu/Fermé
A voir également:
- Récupérer enregistrement dans ArrayList
- Récupérer enregistrement bbox - Forum - Bbox Bouygues
- Recuperer enregistrement box orange ✓ - Forum - Internet / Réseaux sociaux
- Freebox récupérer enregistrement tf1, m6 ✓ - Forum - Windows
- Récupérer enregistrement caché freebox révolution - Forum - Freebox
- Enregistrement "Invisible" sur le réseau Freebox ✓ - Forum - Freebox
2 réponses
KX
27 févr. 2021 à 11:21
- Messages postés
- 16581
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 26 juillet 2022
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()); } }