Maison > base de données > tutoriel mysql > Comment résoudre l'exception MySQL « Opération non autorisée après la fermeture du jeu de résultats » dans Java JDBC ?

Comment résoudre l'exception MySQL « Opération non autorisée après la fermeture du jeu de résultats » dans Java JDBC ?

DDD
Libérer: 2024-11-26 13:29:14
original
901 Les gens l'ont consulté

How to Resolve the

Exception MySQL : « Opération non autorisée après la fermeture de ResultSet » dans Java JDBC

Lorsque vous travaillez avec des bases de données, il est crucial de comprendre l'état de objets de données pour éviter les erreurs. Une exception courante dans JDBC est l'erreur « Opération non autorisée après la fermeture de ResultSet ». Explorons la cause et la solution de ce problème.

Cause :

Dans JDBC, un ResultSet représente l'ensemble de résultats d'une requête de base de données. Une fois que vous avez exécuté une requête et obtenu un ResultSet, vous devez la parcourir et la fermer explicitement pour libérer les ressources système. Si vous tentez d'effectuer des opérations sur un ResultSet fermé, vous rencontrerez l'exception « Opération non autorisée après la fermeture du ResultSet ».

Solution :

Dans le code, l'erreur se produit dans la classe MySQLDonation lors de l'itération dans le ResultSet renvoyé par la requête qui récupère les enregistrements de dons. Plus précisément, le problème se pose car le même objet Statement est utilisé à la fois pour exécuter la requête Select et pour exécuter la requête Supprimer ultérieure.

Approche recommandée :

Pour résoudre ce problème problème, créez un nouvel objet Statement à chaque fois que vous exécutez une requête, plutôt que de réutiliser la même instruction. Voici les étapes pour mettre en œuvre cette approche :

  1. Supprimez l'instruction = connection.createStatement(); ligne de la méthode connect() dans la classe MySQLDatabase.
  2. Remplacez toutes les instances de l'instruction dans la classe MySQLDatabase par connection.createStatement(). Alternativement, vous pouvez supprimer complètement la variable d'instruction privée.

En suivant ces étapes, vous vous assurez que chaque opération sur un ResultSet est effectuée à l'aide d'un objet Statement nouvellement créé, empêchant ainsi la fermeture prématurée du ResultSet. Cette approche permettra au code de traiter correctement les enregistrements de dons et d'éviter l'exception « Opération non autorisée après la fermeture de ResultSet ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal