Comprendre l'exception « Opération non autorisée après la fermeture de ResultSet »
Lors de l'exécution d'instructions SQL en Java, il est essentiel de gérer correctement les objets ResultSet pour éviter les exceptions. Une exception courante rencontrée est "java.sql.SQLException : opération non autorisée après la fermeture de ResultSet."
Cette exception se produit lorsqu'une opération (telle que la récupération de données à partir d'un ResultSet) est tentée après la fermeture du ResultSet. L'extrait de code que vous avez fourni illustre ce problème.
Cause première de l'exception
Dans votre code, vous créez un objet instruction et l'utilisez pour exécuter deux requêtes : une pour récupérer le nom de l'utilisateur et un autre pour récupérer les identifiants de la table "profils". Vous tentez ensuite de créer un PreparedStatement en utilisant le même objet de connexion et de préparer une instruction de mise à jour.
Le problème survient lorsque vous accédez à la méthode "getStuff()" dans la boucle while itérant sur les résultats des "profils". tableau. À l'intérieur de cette méthode :
Ceci viole l'exigence selon laquelle un seul objet ResultSet par Statement peut être ouvert à la fois. Par conséquent, le ResultSet de la méthode "getStuff()" est en conflit avec l'objet ResultSet (rs2) créé dans le code principal.
Solution
Pour résoudre ce problème exception, vous devez gérer correctement les objets ResultSet :
De plus, vous pouvez envisager de créer un nouvel objet Statement pour le Méthode "getStuff()" pour éviter tout conflit potentiel avec l'objet Statement utilisé dans le code principal.
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!