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

cs_fatimaezzahra89 Messages postés 2 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 31 août 2009 - 21 août 2009 à 14:15
cs_MoH008 Messages postés 238 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 29 septembre 2011 - 21 août 2009 à 15:36
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();

}
}
}
A voir également:

5 réponses

cs_MoH008 Messages postés 238 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 29 septembre 2011 1
21 août 2009 à 14:45
Salut,
déjà un "bonjour" ne ferait pas de mal !!!
Quelle exception est générée ?


==============================================
Possible meet Impossible to become...Possimpible
==============================================
0
cs_fatimaezzahra89 Messages postés 2 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 31 août 2009
21 août 2009 à 15:00
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)
0
cs_MoH008 Messages postés 238 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 29 septembre 2011 1
21 août 2009 à 15:32
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
==============================================
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 août 2009 à 15:33
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MoH008 Messages postés 238 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 29 septembre 2011 1
21 août 2009 à 15:36
je n'avais même pas attention à ce détail en plus :s ...


==============================================
Possible meet Impossible to become...Possimpible
==============================================
0
Rejoignez-nous