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....
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
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 :
if(uneQuestion.getTypeAnalyse().get(i).toString().equals(resultatRequeteListeTypeAnalyse.getString("nom_analyse"))){
Le problème vient de mon algo...
Quelqu'un de charitable pour m'aider??
Partager