Obtenir le Nombre de Lignes retournées par ResultSet en Java
J'ai utilisé un ResultSet
qui renvoie certain nombre de lignes. Mon code est quelque chose comme ceci:
ResultSet res = getData();
if(!res.next())
{
System.out.println("No Data Found");
}
while(res.next())
{
//code to display the data in the table.
}
Est il une méthode pour vérifier le nombre de lignes retournées par la ResultSet
? Ou dois-je écrire mon propre?
- Doublon de: stackoverflow.com/questions/7545820/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
do ... while
boucle au lieu d'unwhile
boucle, de sorte quers.next()
est appelé après que la boucle est exécutée, comme ceci:Ou compter les lignes de vous-même que vous les obtenir:
Tout d'abord, vous devez créer
Statement
qui peut être déplacer le curseur par la commande:Puis récupérer le
ResultSet
comme ci-dessous:Déplacer le curseur sur la dernière ligne et obtenir:
Puis lignes variable contient le nombre de lignes retournées par sql
Un simple getRowCount méthode peut ressembler à ceci :
Juste être conscient que cette méthode aura besoin d'un défilement sensible au jeu de résultats, lors de la création de la connexion, vous devez spécifier l'option de défilement. Par défaut est à l'AVANT et à l'aide de cette méthode va vous jeter exception.
Une autre façon de différencier entre 0 lignes ou des lignes à partir d'un jeu de résultats:
Si vous devez connaître le nombre de lignes étant donné un jeu de résultats, voici une méthode pour l'obtenir:
res.next()
méthode prendra le pointeur à la ligne suivante. et dans votre code, vous utilisez deux fois, d'abord pour la condition if (curseur se déplace à la première ligne), ensuite, pour la condition du while (curseur se déplace vers la deuxième rangée).Ainsi, lorsque vous accédez à vos résultats, il commence à partir de la deuxième ligne. Donc, montre une ligne de moins en moins de résultats.
vous pouvez essayer ceci :
On pouvait compter avec sql et récupérer la réponse du jeu de résultats comme suit:
Ici, je suis de tout compter, mais vous pouvez facilement modifier le SQL à compter basée sur un critère.
Vous pouvez charger le jeu de résultats dans un TableModel, puis créer un JTable qui utilise cette TableModel, puis utilisez le tableau.méthode getRowCount (). Si vous allez à l'affichage du résultat de la requête, vous devez le faire de toute façon.
première ligne de code dit que nous pouvons aller n'importe où dans le jeu de résultats( que ce soit à la première ligne ou la dernière ligne, ou avant la première ligne sans avoir besoin de parcourir ligne par ligne en commençant à partir de la première rangée, qui est le temps de prendre).deuxième ligne de code récupère les documents correspondant à la requête ici, je suis en supposant (25 dossiers), de la troisième ligne de code déplace le curseur vers la dernière ligne et la dernière ligne du code de la ligne actuelle, qui est de 25 dans mon cas. si il n'y a pas d'enregistrements, rs.dernière renvoie 0 et getrow déplace le curseur avant la première ligne donc retourner une valeur négative indique l'absence d'enregistrements en db
ce ma solution
Vous pouvez utiliser
res.previous()
comme suit: