Avatar billede davidfossil Nybegynder
13. juni 2005 - 17:09 Der er 7 kommentarer og
1 løsning

Antal rækker i et ResultSet.

Jeg har ledt i API'et, men kan ikke umiddelbart finde en let løsning  på dette. Er jeg nødt til at løbe igennem med en while løkke for selv at tælle antallet af rækker, eller har jeg overset en metode?
Avatar billede _carsten Nybegynder
13. juni 2005 - 17:15 #1
De fleste steder kan bruge rs.last(), flytter til sidste row i resultset

Herefter kan du bruge rs.getRow() til at hente rækkenummer i resultset
Avatar billede _carsten Nybegynder
13. juni 2005 - 17:17 #2
Der findes mig bekendt ikke nogen specifik metode til at hente antallet af records i et resultset - ovenstående er måden at gøre det på, hvis du har behov for at kende antallet af records
Avatar billede arne_v Ekspert
13. juni 2005 - 17:59 #3
hvis du læser ind i en dynamisk struktur som f.eks. ArrayList så behøver du ikke kende
antal rækker på forhånd

det kan absolut anbefales

hvis du vil læse ind i normale arrays skal du kende antal række rpå forhånd

den bedste måde er at lave en query først med en SELECT COUNT(*) ...

du kan også lave et scrollable ResultSet og så bruge tricket med at gå
til sidst og se række nummeret

men mange JDBC drivere vil implementere et scrollable ResultSet med at læse
det hele til memory - og for store data mængde kan det resultere i
en out of memeory exception
Avatar billede davidfossil Nybegynder
13. juni 2005 - 19:03 #4
Resultatet skulle gerne være nogle objects i et almindeligt array.

En løsning jeg selv kan se er at tilføje alt til en ArrayList, og så bagefter bruge dennes size() og toArray() til at "konvertere" til et alm. array. Hvordan vil en sådan løsning fungere performancemæssigt?
Avatar billede arne_v Ekspert
13. juni 2005 - 19:28 #5
det koster lidt men næppe noget som betyder noget
Avatar billede davidfossil Nybegynder
13. juni 2005 - 20:31 #6
Ok, så tror jeg jeg vælger den løsning.

I må meget gerne begge smide et svar, så I kan dele lidt points for de udemærkede forslag.
Avatar billede arne_v Ekspert
13. juni 2005 - 21:44 #7
ok
Avatar billede _carsten Nybegynder
13. juni 2005 - 21:45 #8
Så må det være Arne som skal svare.

ArrayList og SELECT COUNT er den rigtige måde at gøre det på !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester