Comment puis-je récupérer un JDBC ResultSet comme une ArrayList?

Je suis en train de faire une requête pour récupérer une grande quantité de Id (nombres entiers). Au lieu d'itération des millions de fois à travers le jeu de résultats et de tout recopier un par un à une liste de tableaux, est-il un moyen de récupérer tout comme une liste de tableaux?

Je comprends que le jeu de résultats est censé être itéré parce que l'implémentation sous-jacente peut être mise en cache des choses, mais dans ma situation, j'ai juste besoin de tous les Id tout de suite. Je sais que je peux définir la FetchSize à un grand nombre, mais je dois encore récupérer l'Id d'un-à-un.

Clarification: la raison pour laquelle je veux faire, c'est de la performance. Profilage me montre que faire le jeu de résultat.next(), jeu de résultats.getInt() et liste de tableaux.ajouter() des millions de fois prend du temps. Je suppose que la base de données (je suis en utilisant H2, qui est écrit en Java) a sans doute le tableau ou une liste quelque part dans la mémoire, donc je suis à la recherche d'un moyen de le copier à moi directement au lieu de passer par le jeu de résultats de l'itération de l'interface.

Probablement traiter avec des millions d'Entiers prend beaucoup de temps. Voulez-vous un int[] ou primitive sous forme de Liste à la place? N'est probablement pas directement mis en œuvre comme un int/Liste en raison de mises à jour et général tableness.
int[] ou de la Liste sont tous les deux très bien. Je suis tout simplement à la recherche d'un moyen de dire à la base de données: oublier la mise en cache/chargement paresseux/etc., donnez-moi juste les données aussi rapidement que vous le pouvez 🙂
Avoir un profil et voir où est le problème de performance. (Oracle n'avez obtenir un tableau de la colonne méthodes sur son jeu de résultats, IIRC. Non pas que ce qui compte pour un H2.)

OriginalL'auteur Deckard | 2009-03-13