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
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
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 !