Ma liste retourne un élément seulement
deep_sea
Messages postés
201
Date d'inscription
Statut
Membre
Dernière intervention
-
deep_sea Messages postés 201 Date d'inscription Statut Membre Dernière intervention -
deep_sea Messages postés 201 Date d'inscription Statut Membre Dernière intervention -
Bonjour ,
j'ai développé une fonction recup_let qui récupère des données a partir de la base de donnée et j'ai les stockés dans un ArrayList pour les copies ensuite dans un fichier txt
Mon problème le fichier génère mais avec une ligne seulement.
détails ..
au début j'ai créer une classe compte avec les getters et les setters puis une fonction recup_let pour faire la récupération à partir de la bd et les inserets dans le fichier a partir du ArrayList
j'ai développé une fonction recup_let qui récupère des données a partir de la base de donnée et j'ai les stockés dans un ArrayList pour les copies ensuite dans un fichier txt
Mon problème le fichier génère mais avec une ligne seulement.
détails ..
au début j'ai créer une classe compte avec les getters et les setters puis une fonction recup_let pour faire la récupération à partir de la bd et les inserets dans le fichier a partir du ArrayList
private ArrayList<compte> liste = new ArrayList<compte>();
compte let ;
public void recup_let() { conn = Connexion_reprise.Connectdb(); String requete = "select ncp , dev , age , sen , lib , dco , ope ,dou,rlet ,mon\n" + "from compte\n" + "group by ncp , dev , age , sen , lib , dco , ope ,dou,rlet ,mon "; try { pst = conn.prepareStatement(requete); rs=pst.executeQuery(); let = new compte(); while(rs.next()) { let.setncp(rs.getString("ncp")); let.setage(rs.getString("age")); let.setsen(rs.getString("sen")); let.setlib(rs.getString("lib")); let.setdco(rs.getString("dco")); let.setope(rs.getString("ope")); let.setdou(rs.getString("dou")); let.setrlet(rs.getString("rlet")); let.setmon(rs.getString("mon")); liste.add(let); for ( int j= 0 ;j< liste.size();j++) { // debut for System.out.println("Début génération fichier test.txt : " + new Date()); out = new PrintWriter (new FileWriter(fichierZLETMOU0)); out.write("" + "0001 + "001" +remplireBlancD(liste.get(j).getncp(), 20) + cle_de_mouvement( liste.get(j).getmon(), liste.get(j).getlib() ,98) +"-RM" +remplireBlancD(liste.get(j).getope(), 9) +remplireBlancD(" " ,6)//code_analytique +remplireBlancD(" ",3) //banque de france +"0" +remplireBlancD(liste.get(j).getlib(),30) +remplireBlancD(" ",30)//libelle 2 +remplireBlancD(liste.get(j).getrlet(), 7) ); out.println(); } //fin for } out.close(); System.out.println("----Fin génération fichier test.txt ----" + new Date()); } catch(Exception e) { System.out.println("impossible de récuperer les données"+e); } }
A voir également:
- Ma liste retourne un élément seulement
- Liste déroulante excel - Guide
- Ecran retourne - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Site dangereux liste - Guide
2 réponses
Bonjour,
C'est normal, ton let est défini au niveau de la classe (mais pourquoi ?), et son assignation let = new compte() est située en dehors de la boucle.
Je ne comprends pas non plus pourquoi ton affichage for(..liste..) est placé dans la boucle While d'approvisionnement de list.
Fais plutôt :
C'est normal, ton let est défini au niveau de la classe (mais pourquoi ?), et son assignation let = new compte() est située en dehors de la boucle.
Je ne comprends pas non plus pourquoi ton affichage for(..liste..) est placé dans la boucle While d'approvisionnement de list.
Fais plutôt :
try { pst = conn.prepareStatement(requete); rs=pst.executeQuery(); while(rs.next()) { compte let = new compte(); let.setncp(rs.getString("ncp")); let.setage(rs.getString("age")); let.setsen(rs.getString("sen")); let.setlib(rs.getString("lib")); let.setdco(rs.getString("dco")); let.setope(rs.getString("ope")); let.setdou(rs.getString("dou")); let.setrlet(rs.getString("rlet")); let.setmon(rs.getString("mon")); liste.add(let); } for ( int j= 0 ;j< liste.size();j++) { // debut for etc.