[JAVA] Le cas où le prochain () de Resultset a été confondu avec la méthode de jugement de l'existence ou non

un événement

Avec un peu de code, lancez une requête SELECT, Il y avait un endroit où le résultat de l'acquisition était stocké dans la ** variable de type ResultSet rset **.

Je voulais vérifier le nombre d'éléments dans rset pour lire le code, donc J'ai ajouté le code suivant au milieu et l'ai exécuté.

example.java


int testIndex = 0;
while(rset.next()){
    System.out.println("Je veux vérifier le nombre d'éléments dans rset");
    System.out.println(++testIndex);
}

Puis (bien qu'il ait été terminé normalement jusque-là) Dans le processus qui a suivi, l'exception suivante s'est produite.

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

C'était censé lire, mais c'était cassé

Quand j'ai pensé que c'était étrange, j'ai trouvé que next () était mal compris. Il existe également une fonction pour passer à la ligne suivante à partir de la position actuelle et placer le curseur dessus.

Dans le code ci-dessus, j'ai quitté la boucle avec le curseur sur le dernier élément, Dans le rset suivant, il n'y a aucun élément pour frapper le curseur suivant, L'exception ci-dessus s'est produite.

En même temps, je veux faire attention à next () de ResultSet J'ai appris que le code que j'ai ajouté temporairement pour la lecture peut être mauvais.

Articles que j'ai utilisés comme référence

Next () de Resultset n'est pas une "méthode pour déterminer s'il y a un ResultSet next".

Recommended Posts

Le cas où le prochain () de Resultset a été confondu avec la méthode de jugement de l'existence ou non
Next () de Resultset n'est pas une "méthode pour déterminer s'il y a un ResultSet next".
Utilisez Modifier # isStatic pour déterminer si la méthode [Reflection] est statique.
S'il y a une transition d'état, créons une classe State
si le cas let b comme Int = a est plus rapide que si let b = a as? Int
Enfin, créez une méthode pour savoir s'il y a un caractère
Comment créer une méthode
WSL2 Il n'y avait qu'un moyen stable de ramener Ubuntu20.04 à WSL1
Que faire si vous mourez avec zip si vous avez pom lors de la création d'un fichier exécutable avec gradle