Affichage de contenu d'une arrayList() qui contient un ResultSet

Signaler
Messages postés
2
Date d'inscription
jeudi 7 mai 2009
Statut
Membre
Dernière intervention
31 août 2009
-
Messages postés
238
Date d'inscription
lundi 2 mars 2009
Statut
Membre
Dernière intervention
29 septembre 2011
-
je veux stocker un resultset dans une arraylist pui afficher le contenu de cette arraylist voilà le code que j'ai fais mail il me donne une exception

public class tests {

public static void main(String[]arg){

ArrayList<ResultSet> list = new ArrayList<ResultSet> ();


String pilote = "com.mysql.jdbc.Driver";

try{
Class.forName(pilote);

Connection connexion = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/forum","root","");

Statement instruction = (Statement) connexion.createStatement();

ResultSet resultat = instruction.executeQuery("SELECT * FROM clients");



while(resultat.next())
{list.add(resultat);}

for(ResultSet r:list){
System.out.print(r.getString(0));
}



} catch (Exception e) {

e.printStackTrace();

}
}
}

5 réponses

Messages postés
238
Date d'inscription
lundi 2 mars 2009
Statut
Membre
Dernière intervention
29 septembre 2011

Salut,
déjà un "bonjour" ne ferait pas de mal !!!
Quelle exception est générée ?


==============================================
Possible meet Impossible to become...Possimpible
==============================================
Messages postés
2
Date d'inscription
jeudi 7 mai 2009
Statut
Membre
Dernière intervention
31 août 2009

bonjour
voilà l'exception generée:

java.sql.SQLException: After end of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:815)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5528)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5448)
at webapplication3.tests.main(tests.java:47)
Messages postés
238
Date d'inscription
lundi 2 mars 2009
Statut
Membre
Dernière intervention
29 septembre 2011

Remarques :
- pourquoi tu fais des cast ?
- ferme le resulset quand tu n'en a plus besoin (close())

Je dirais que ton problème vient de ta boucle for, puisque l'ajout dans ta "list" semble correct.

Un post plus ou moins similaire ici

==============================================
Possible meet Impossible to become...Possimpible
==============================================
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
Salut,

Un resulset n'est qu'une image à un instant T des données renvoyées par une requête. Il n'est pas fait pour être stockés indéfiniment, et il devrait être détruit aussitôt après son utilisation !

Au lieu de stocker tes resultsets dans ta liste, stocke les données qui t'interessent à partir de ce resultset.

Sinon, si tu relisais un peu ton code, tu comprendrais vite ton erreur :

while(resultat.next()) //ici tu parcours ton resultset ligne par ligne
list.add(resultat); // ici tu stocke tout le resultset (toutes les lignes donc) dans ta liste !

______________________________________
DarK Sidious
Messages postés
238
Date d'inscription
lundi 2 mars 2009
Statut
Membre
Dernière intervention
29 septembre 2011

je n'avais même pas attention à ce détail en plus :s ...


==============================================
Possible meet Impossible to become...Possimpible
==============================================