Un numero predefinito di righe (non l'intero set di risultati) verrà recuperato nella memoria locale. Una volta raggiunta l'ultima riga delle righe recuperate (ad esempio facendo next() e provando ad accedere alla riga successiva) e se ci sono più righe nel risultato, verrà effettuata un'altra chiamata di andata e ritorno al database per recuperare il prossimo batch di righe.
MODIFICA 1:
Puoi vedere quante righe il tuo set di risultati sta recuperando alla volta in questo modo (verifica la sintassi):
rs.beforeFirst(); // will put cursor before the first row
rs.last(); // will put cursor after the last line
int noOfRows = rs.getRow(); // will give you the current row number
EDIT 2:
Se desideri ottenere più righe nella memoria locale del solito, puoi prendere in considerazione CachedRowSet . Anche questo farà dei viaggi di andata e ritorno, ma generalmente meno del normale set di risultati. Tuttavia, dovresti considerare di eseguire alcuni controlli delle prestazioni per le tue applicazioni.