LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009
-
12 mai 2007 à 19:00
kzaazoui
Messages postés1Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention16 janvier 2008
-
16 janv. 2008 à 17:57
Salut à tous,
Je débute dans le développement en Java et surtout dans l'utilisation de JDBC.
Alors voilà, j'ai une classe de type singleton nommée Database qui se charge de se connecter à une base de donnée Oracle, et de créer un Statement à partir de la connexion. Elle possède une méthode ResultSet query(String sql) qui se charge d'executer les requêtes, et qui retourne un ResultSet.
Elle fonctionne bien, sauf dans le cas où je fais 2 requêtes d'affilée ... Imaginons par exemple 2 tables différentes Ouvrier et Client qui possèdent toutes les 2 au moins 4 enregistrements (je précise ça car le problème ne vient pas des tables).
// Série 1
ResultSet result1 = database.query("SELECT * FROM Ouvrier");
result1.next();
System.out.println(result1.getInt(1));
result1.next();
System.out.println(result1.getInt(1));
System.out.println("--------------------");
// Série 2
ResultSet result2 = database.query("SELECT * FROM Client");
result2.next();
System.out.println(result2.getInt(1));
result2.next();
System.out.println(result2.getInt(1));
System.out.println("--------------------");
// Série 3
result1.next();
System.out.println(result1.getInt(1));
result1.next();
System.out.println(result1.getInt(1));
System.out.println("--------------------");
Et bah ça marche pas. La série 3 m'affiche le reste de la série 2 au lieu du reste de la série 1 ... Pourquoi ? Comment faire pour que ça ne fasse pas ça ?
Merci pour vos réponses !
LocalStone
emmatopiak
Messages postés149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 12 mai 2007 à 19:15
Salut,
OK
Tu pourrais faire une copie du ResultSet dans une classe a toi
ainsi tu aurais pas de problemes
mais c'est etrange
a Ta place oui je ferais une copie de ResultSet comme ca ca serait regle
car peut-etre que ResultSet ne stocke pas tout pour pas prendre trop de memoire
mais recupere au fur et a mesure les donnees manquantes
LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009 12 mai 2007 à 19:22
Je vais déjà essayer ta solution, mais en fait, j'ai dis une connerie dans mon premier post. Je ne récupère pas la suite, mais en fait j'obtiens l'exception suivante : Exception in thread "main" java.sql.SQLException: Ensemble de résultats épuisé, ce qui est étrange dans le sens où ma table contient un nombre suffisant d'entrée ...
Mais je vais déjà essayer ta solution.
Merci !