Ma liste retourne un élément seulement
deep_sea
Messages postés
215
Statut
Membre
-
deep_sea Messages postés 215 Statut Membre -
deep_sea Messages postés 215 Statut Membre -
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 code ascii - Guide
- Liste déroulante en cascade - 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.