Um número padrão de linhas (não todo o conjunto de resultados) será buscado em sua memória local. Quando você chegar à última linha das linhas buscadas (digamos, fazendo next() e tentar acessar a próxima linha) e se houver mais linhas no resultado, outra chamada de ida e volta será feita ao banco de dados para buscar a próxima lote de linhas.
EDIÇÃO 1:
Você pode ver quantas linhas seu conjunto de resultados está buscando por vez fazendo isso (por favor, verifique a sintaxe):
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
EDIÇÃO 2:
Se você deseja obter mais linhas na memória local do que o normal, considere CachedRowSet . Mesmo isso fará viagens de ida e volta, mas geralmente menos do que o conjunto de resultados normal. No entanto, você deve considerar fazer algumas verificações de desempenho para seus aplicativos.