Po pierwsze, czy na pewno potrzebujesz całej tabeli w pamięci? Może powinieneś rozważyć (jeśli to możliwe) wybranie wierszy, które chcesz zaktualizować/scalić/itd. Jeśli naprawdę musisz mieć całą tabelę, możesz rozważyć użycie przewijalnego zestawu wyników. Możesz to stworzyć w ten sposób.
// make sure autocommit is off (postgres)
con.setAutoCommit(false);
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, //or ResultSet.TYPE_FORWARD_ONLY
ResultSet.CONCUR_READ_ONLY);
ResultSet srs = stmt.executeQuery("select * from ...");
Umożliwia przejście do dowolnego wiersza za pomocą metod „bezwzględnych” i „względnych”.