Question

Je suis confus au sujet de pourquoi python besoins curseur de l'objet.Je sais jdbc et il y a la connexion de base de données est assez intuitif, mais en python, je suis confus avec le curseur de l'objet.Aussi, je remets en question quelle est la différence entre le curseur.close() et de connexion.fonction close() en termes de ressources de la libération.

Était-ce utile?

La solution

Le paradigme du curseur n'est pas spécifique à Python, mais constitue une structure de données fréquente dans bases de données elles-mêmes .

Selon la mise en œuvre sous-jacente, il peut être possible de générer plusieurs curseurs partageant la même connexion à une base de données.La fermeture du curseur devrait libérer des ressources associées à la requête, y compris tout résultat jamais extrait de la base de données (ou récupéré mais non utilisé) mais n'éliminerait pas la connexion à la base de données elle-même afin de pouvoir obtenir un nouveau curseur sur la même base de donnéesSans la nécessité d'authentifier à nouveau.

Autres conseils

Comme d'autres l'oublier, un Connection() c'est le réseau de connexion à la base de données, et c'est seulement en utilisation réelle est de retour curseurs. PEP-249, où DBApi 2.0 est spécifié, ne définit pas clairement ce qu'est exactement une connexion ou d'un curseur est, ni ce que la close() méthode sur chacun doit faire;seulement que <module>.connect() doit retourner une instance de <module>.Connection que <module>.Connection.cursor() doit retourner une instance de <module>.Cursor et <module>.Cursor.execute() invoquer la déclaration prévue et de retourner les résultats.En particulier, elle ne définit pas une <module>.Connection.execute() , bien que les implémentations spécifiques sont libres de mettre en œuvre comme des extensions.

En fonction de ces extensions est sans doute imprudent, car il signifie que vous n'aurez pas comme un code portable.DBApi fait ce à deux niveaux d'exigence car le fait d'avoir une exécution sur la connexion sans objet intermédiaire peut être difficile sur certaines bases de données.

L'objet de connexion est votre connexion à la base de données, fermez-la lorsque vous avez terminé de parler à la base de données tous ensemble.L'objet Cursor est un itérateur sur un résultat défini à partir d'une requête.Fermez ceux quand vous avez terminé avec ce jeu de résultats.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top