La risposta potrebbe sembrare non banale, ma lo è in quanto di default i ResultSet vengono istanziati in maniera sequenziale, ma ciò può essere modificato mediante un opportuna dichiarazione, con cui è possibile accedere ai dati in maniera non sequenzioale. E' possibile infatti muoversi anche in senso opposto, oppure accedere direttamente ad una riga.
Vediamo un esempio di codice:
PreparedStatement pstmt4 = medpConnection.prepareStatement(
"SELECT * FROM USERS",
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
Vediamo ora come si può recuperare il numero di righe ottenute come risultato dalla query:
ResultSet rs4 = pstmt4.executeQuery();
rs4.last();
int numberList = rs4.getRow();
rs4.beforeFirst();
In questo modo si posiziona il ResultSet in ultima riga ottenuta, si recupera il numero della riga e si riposiziona il ResultSet nella posizione iniziale, cioè prima del primo risultato.
In tal modo è possibile utilizzare il ResultSet in un semplicissimo ciclo del tipo:
while (rs4.next()) {
...
}
1 commento:
Ottimo!
Posta un commento