Récupérer enregistrement dans ArrayList
Résolu
Galactica
-
Galactica -
Galactica -
Bonjour,
j'ai un soucis avec netbeans , j"utilise la version 8.2 avec le jdk 1.8
mon problème est le suivant:
je n"arrive pas a récupérer les enregistrements de mon arrayList hors de la méthode dans laquelle les données sont ajoutés
quelqu’un pourrait il m'aider ?
ci dessous le code
j'ai un soucis avec netbeans , j"utilise la version 8.2 avec le jdk 1.8
mon problème est le suivant:
je n"arrive pas a récupérer les enregistrements de mon arrayList hors de la méthode dans laquelle les données sont ajoutés
quelqu’un pourrait il m'aider ?
ci dessous le code
package entite; //piur la connection a la BD import controle.connection.ControleConnexion; import java.sql.Connection; //pour les requete sql import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; //pour la structure d'acceuil des données import java.util.ArrayList; //pour la gestion des propriété Date import java.util.Date; //pour les boite de dialogue import javax.swing.JOptionPane; public class Client extends Personne{ //PRORIETE //proprieté de base de la classe private boolean carte_fidele; private Date date_creation; static Client bb =new Client(); //proprieté de la classe //----------------------- private static Connection laConnexion = ControleConnexion.getLaConnectionStatique(); //proriété de type arrayliste qui contient les enregistrements private final static ArrayList <Client> lesEnreg = new ArrayList<>(); //GETTERS de base //-------------- public String getCode(){ return code; } public String getNom(){ return nom; } public String getPrenom(){ return prenom; } public boolean isCarte_fidele(){ return carte_fidele; } public Date getDate_creation(){ return date_creation; } //getters pour transmettre l'arraylist //------------------------------------ public ArrayList<Client> getLesEnreg(){ return lesEnreg; } //Setters******************************** public void setCode(String code) { this.code = code; } public void setNom(String nom) { this.nom = nom; } public void setPrenom(String prenom) { this.prenom = prenom; } public void setCarte_fidele(boolean carte_fidele) { this.carte_fidele = carte_fidele; } public void setDate(Date date) { this.date_creation = date; } //CONSTRUCTEURS //---------------- //1er CONSTRUCTEUR //---------------- public Client(String vCode,String vNom,String vPrenom,boolean vCarteFidele,Date vDateCreation){ super(vCode,vNom,vPrenom); this.code= vCode; this.nom = vNom; this.prenom=vPrenom; carte_fidele = vCarteFidele; date_creation=vDateCreation; } //2eme CONSTRUCTEUR //------------------- public Client(String vCode){ super(vCode); this.code = vCode; } //3eme CONSTRUCTEUR //---------------------- public Client(){ } //4eme CONSTRUCTEUR //------------------------ public Client(String vNom, String vPrenom){ nom= vNom; prenom = vPrenom; } public static void lireRecupCRUD(){ try { Statement state = laConnexion.createStatement(); ResultSet rs = state.executeQuery("SELECT * FROM clients ORDER BY nom"); while (rs.next()){ String codeJ = rs.getString("code"); String nomJ = rs.getString("nom"); String prenomJ = rs.getString("prenom"); boolean carte_fideleJ = rs.getBoolean("carte_fidele"); Date date_creation = rs.getDate("date"); lesEnreg.add(new Client(codeJ, nomJ, prenomJ, carte_fideleJ, date_creation)); System.out.println(lesEnreg.size()); } } catch (SQLException e) { JOptionPane.showMessageDialog(null,"PROBLEME RENCONTRE : "+ e.getMessage(), "resultat", JOptionPane.ERROR_MESSAGE); } } public static void main(String [] args) { Client test = new Client(); System.out.println(test.getLesEnreg().isEmpty()); } }
Configuration: Windows / Chrome 81.0.4044.92
A voir également:
- Récupérer enregistrement dans ArrayList
- Recuperer message whatsapp supprimé - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment récupérer un compte facebook piraté - Guide
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
2 réponses
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()); } }