Tout d'abord, êtes-vous sûr d'avoir besoin de toute la table en mémoire ? Peut-être devriez-vous envisager (si possible) de sélectionner les lignes que vous souhaitez mettre à jour/fusionner/etc. Si vous avez vraiment besoin de toute la table, vous pouvez envisager d'utiliser un ResultSet déroulant. Vous pouvez le créer comme ceci.
// 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 ...");
Il vous permet de passer à n'importe quelle ligne de votre choix en utilisant les méthodes "absolues" et "relatives".