JAVA + SQL, Operation not allowed after ResultSet closed
Eskode
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je travail actuellement sur un projet de simulation de course hippiques, et je rencontre quelques problèmes avec la méthode de mise à jour des blessures des chevaux.
Voici mon code :
Le problème étant que l'exécution se bloque lorsque cette méthode est appelée et je reçoit le message d'erreur suivant :
java.sql.SQLException: Operation not allowed after ResultSet closed
Je remarque également que la boucle n'est jamais exécutée plus d'une foi.
Merci à l'avance pour vos réponses !
Je travail actuellement sur un projet de simulation de course hippiques, et je rencontre quelques problèmes avec la méthode de mise à jour des blessures des chevaux.
Voici mon code :
public void majBless() throws SQLException{
String url = "jdbc:mysql://localhost:3306/Hippodrome";
String user = "root";
String password = "";
Connection connect8 = DriverManager.getConnection(url, user, password);
Statement state8 = connect8.createStatement();
ResultSet resultat8 = state8.executeQuery("SELECT * FROM chevaux WHERE blessure !=0 ");
while(resultat8.next()){
int b = resultat8.getInt("blessure");
b = b-1;
int idC = resultat8.getInt("idC");
String sql = "UPDATE chevaux SET blessure = "+b+" WHERE idC = "+idC+"";
state8.executeUpdate(sql);
}
}
Le problème étant que l'exécution se bloque lorsque cette méthode est appelée et je reçoit le message d'erreur suivant :
java.sql.SQLException: Operation not allowed after ResultSet closed
Je remarque également que la boucle n'est jamais exécutée plus d'une foi.
Merci à l'avance pour vos réponses !
A voir également:
- JAVA + SQL, Operation not allowed after ResultSet closed
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
Bonjour,
Je ne m'y connais pas tellement en Java, mais il me semble que le problème vient de l'imbrication de requêtes utilisant la même ressourcestate8.
Pour y pallier, tu pourrais déclarer un nouveau Statement, mais je te propose plutôt une solution qui règlera le problème et allègera ton code.
Plutôt qu'un SELECT, puis plusieurs UPDATE, utilise un seul UPDATE :
Xavier
Je ne m'y connais pas tellement en Java, mais il me semble que le problème vient de l'imbrication de requêtes utilisant la même ressourcestate8.
Pour y pallier, tu pourrais déclarer un nouveau Statement, mais je te propose plutôt une solution qui règlera le problème et allègera ton code.
Plutôt qu'un SELECT, puis plusieurs UPDATE, utilise un seul UPDATE :
public void majBless() throws SQLException{ String url = "jdbc:mysql://localhost:3306/Hippodrome"; String user = "root"; String password = ""; Connection connect8 = DriverManager.getConnection(url, user, password); Statement state8 = connect8.createStatement(); ResultSet resultat8 = state8.executeUpdate("UPDATE chevaux SET blessure = blessure - 1 WHERE blessure > 0"); }
Xavier