Exception ResultSet : "Avant le début de l'ensemble de résultats"
L'exécution d'une requête renvoie un objet ResultSet contenant les lignes de données récupérées. Cependant, le curseur pointe initialement avant la première ligne, ce qui entraîne l'exception "Avant le début du jeu de résultats" lors de la tentative de récupération des données.
Cause :
L'erreur se produit lors de l’accès aux données ResultSet sans positionner au préalable le curseur sur un ligne.
Solution :
Pour résoudre le problème, déplacez le curseur sur la première ligne avant de tenter de récupérer des données à l'aide du code suivant :
result.next(); String foundType = result.getString(1);
Extrait de code amélioré :
String sql = "SELECT type FROM node WHERE nid = ?"; PreparedStatement prep = conn.prepareStatement(sql); int meetNID = Integer.parseInt(node.get(BoutField.field_meet_nid)); prep.setInt(1, meetNID); ResultSet result = prep.executeQuery(); if (result.next()) { // Move cursor to first row String foundType = result.getString(1); ... // code to validate type } else { throw new IllegalArgumentException(String.format("Node %d must be of type 'meet', but was %s", meetNID, foundType)); }
Cette modification garantit que le curseur est positionné sur la première ligne du ResultSet avant d'accéder aux données, empêchant ainsi l'exception "Avant le début de l'ensemble de résultats".
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!