Comparaison resultat ResultSet et une ArrayList
Hello tout le monde!
Je souhaite verifier que le contenu d'un ResultSet est exactement le meme que le contenu de mon ArrayList et je rame.... :cry:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| public static boolean analyseIdentique(int idQuestion, Question uneQuestion){
boolean resultat = false;
System.out.println("coucou"+resultat);
try {
// Connection à la base de données
conBD = connexionBD();
Statement requete = conBD.createStatement();
// Contrôle de l'existance de la question dans la bd avec le format Kern
ResultSet resultatRequeteListeTypeAnalyse = requete.executeQuery(
"SELECT type_analyse.* " +
"FROM type_analyse, possession, question " +
"WHERE question.id_question = possession.id_question " +
"AND possession.id_type_analyse = type_analyse.id_type_analyse " +
"AND question.id_question LIKE '"+ idQuestion +"'");
resultatRequeteListeTypeAnalyse.last();
//on récupère le numéro de la ligne
int nombreLignes = resultatRequeteListeTypeAnalyse.getRow();
//on repace le curseur avant la première ligne
resultatRequeteListeTypeAnalyse.beforeFirst();
System.out.println("nombre ligne BD: "+nombreLignes);
System.out.println("nombre analyse question "+uneQuestion.getTypeAnalyse().size());
if(nombreLignes==uneQuestion.getTypeAnalyse().size()){
for(int i=0;i<uneQuestion.getTypeAnalyse().size();i++){
resultatRequeteListeTypeAnalyse.beforeFirst();
while(resultatRequeteListeTypeAnalyse.next()||(!resultat)){
if(uneQuestion.getTypeAnalyse().get(i).toString().equals(resultatRequeteListeTypeAnalyse.getString("nom_analyse"))){
resultat=true;
}else{
resultat=false;
}
}
}
}else{
resultat=false;
}
} catch(Exception e) {
e.printStackTrace();
}
// déconnexion à la base de données
deconnexionBD(conBD);
return resultat;
} |
Je me retrouve avec l'erreur suivante
Code:
1 2 3 4 5 6 7 8
| java.sql.SQLException: After end of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:698)
at com.mysql.jdbc.ResultSet.getStringInternal(ResultSet.java:5476)
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:5420)
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:5436)
at dmind.GestionnaireBd.analyseIdentique(GestionnaireBd.java:550)
at dmind.ProgrammeDmind.main(ProgrammeDmind.java:29) |
Qui correspond à la ligne :
Code:
if(uneQuestion.getTypeAnalyse().get(i).toString().equals(resultatRequeteListeTypeAnalyse.getString("nom_analyse"))){
Le problème vient de mon algo... :cry: :cry:
Quelqu'un de charitable pour m'aider??