Comment obtenir la taille d'une java.sql.ResultSet?
Je veux obtenir la taille de la ResultSet
à l'intérieur de la boucle while.
Essayé le code ci-dessous, et j'ai eu les résultats que je veux. Mais il semble être déconner avec result.next()
et la boucle while seulement les boucles une fois, si je fais cela.
Quelle est la bonne façon de le faire?
result.first();
while (result.next()){
System.out.println(result.getString(2));
System.out.println("A. " + result.getString(5) + "\n" + "B. " + result.getString(6) + "\n" + "C. " + result.getString(7) + "\n" + "D. " + result.getString(8));
System.out.println("Answer: ");
answer = inputquiz.next();
result.last();
if (answer.equals(result.getString(10))) {
score++;
System.out.println(score + "/" + result.getRow());
} else {
System.out.println(score + "/" + result.getRow());
}
}
- double possible de Comment puis-je obtenir la taille d'une java.sql.ResultSet?
Vous devez vous connecter pour publier un commentaire.
Carte à un
List<Entity>
. Depuis votre code est loin de l'auto-documentation (vous êtes en utilisant les indices de la place des noms de colonnes), je ne peux pas donner un bien adaptée exemple. Donc je vais prendre unPerson
comme exemple.D'abord créer une classe javabean qui représente tout ce qu'une seule rangée contient.
(un peu décent IDE comme Eclipse peut générer automatiquement de mer)
Puis laissez JDBC faire le travail qui suit.
Alors vous pouvez simplement faire
Puis de substituer l'exemple de code
Voir aussi:
vous pourriez faire
result.last();
et appelresult.getRow();
(qui récupère l'actuel numéro de ligne) pour obtenir le comte. mais il faudra charger toutes les lignes et si c'est un gros jeu de résultats, il pourrait ne pas être très efficace. La meilleure façon de le faire est de faire uneSELECT COUNT(*)
sur vous la requête et obtenir le comte, comme il est démontré dans ce post, à l'avance.C'est une question difficile.
Normalement,
result.last()
défile jusqu'à la fin de laResultSet
, et vous ne pouvez pas revenir en arrière.Si vous avez créé la déclaration à l'aide de l'un des
createStatement
ouprepareStatement
méthodes avec un "resultSetType" paramètre, et que vous avez réglé le paramètre àResultSet.TYPE_SCROLL_INSENSITIVE
ouResultSet.TYPE_SCROLL_SENSITIVE
, alors vous pouvez faire défiler laResultSet
à l'aide defirst()
ourelative()
ou d'autres méthodes.Cependant, je ne sais pas si toutes les bases de données /JDBC soutien de défilement des ensembles de résultats, et il y a probablement des implications sur les performances dans ce domaine. (Un défilement jeu de résultats implique que la base de données ou la JVM doit tampon de l'ensemble du jeu de résultats quelque part ... ou recalculer ... et c'est cher pour un grand jeu de résultats.)
La façon d'obtenir la taille d'un jeu de résultats, Pas besoin de l'aide de liste de tableaux etc
Maintenant, Vous pouvez profiter de la taille, Et si vous voulez imprimer le jeu de résultats, avant l'impression, l'utilisation de ligne de code suivante aussi,
Il y a aussi un autre moyen pour obtenir le nombre de DB.
Note :
Cette colonne est mise à jour lors de la DBA DE faire des statistiques en temps réel