Ne JDBC avoir un maximum ResultSet taille?
Est-il un nombre maximum de lignes qui JDBC allez mettre dans un ResultSet spécifiquement à partir d'une requête de la Ruche? Je ne parle pas de l'extraction ou de recherche, mais le nombre total de lignes renvoyées dans un jeu de résultats.
Corrigez-moi si je me trompe, mais la taille de l'extraction définit le nombre de lignes de jdbc regarde à traiter à chaque passage dans la base de données, l'insertion des réponses appropriées dans le jeu de résultats. Quand il a traversé tous les enregistrements dans la table, il retourne le jeu de résultats pour le code Java. Je demande si il y a une limite pour le nombre de lignes retournées pour le code Java.
Si elle ne dispose pas d'un nombre maximum de lignes, il n'y a rien d'inhérent à la classe qui peut causer quelques enregistrements à être coupées?
Je suppose que ce serait
Integer.MAX_SIZE
Je suppose que la limite serait la limite de tout type de collection utilisée comme classe de base qui, je pense, des approches
Integer.MAX_SIZE
stackoverflow.com/a/7632240/16959 ou la mémoire disponible pour stocker les enregistrements (qui s'exécute en premier)Il y a aussi des limites pour Java Tableau d'une longueur de stackoverflow.com/a/3039805/16959
Vous devriez être en mesure d'utiliser le getMaxRows méthode de l'objet Statement pour voir si une limite est fixée (0 indique aucune limite, si il y a une limite de jeu excessif lignes sera ignoré), mais en dehors de cela, je suppose que la limite serait lié à la mémoire ou à certains d'autres ressources, comme suggéré par les autres commentateurs.
OriginalL'auteur sparks | 2014-10-28
Vous devez vous connecter pour publier un commentaire.
Non, il ne fonctionne pas de cette façon. JDBC est juste un wrapper autour de natif de bases de données. Mais JDBC ou de la base de données des curseurs le même :
Donc il n'y a pas de limite pour le nombre de lignes d'un jeu de résultats contient, ni pour le nombre de lignes qu'un client java programme peut traiter. La seule limite vient, si vous essayez de charger toutes les lignes de la mémoire pour remplir une liste par exemple et d'échappement de la client de la mémoire de l'application. Mais si vous traiter les lignes et ne pas les garder en mémoire, il n'y a pas de limite (exactement comme ce qui se passe lorsque vous lisez un fichier).
OriginalL'auteur Serge Ballesta