Domanda

Sono confuso sul perché Python ha bisogno dell'oggetto del cursore.So JDBC e lì la connessione al database è abbastanza intuitiva ma in Python sono confuso con l'oggetto cursore.Inoltre sono dubbioso su quale sia la differenza tra il cursore.Close () e la connessione. Funzione. Funzione in termini di rilascio delle risorse.

È stato utile?

Soluzione

Il paradigma del cursore non è specifico per Python ma è una struttura di dati frequenti in Database stessi . .

A seconda dell'implementazione sottostante potrebbe essere possibile generare diversi cursori che condividono la stessa connessione a un database.La chiusura del cursore dovrebbe liberare risorse associate alla query, inclusi eventuali risultati non recuperati dal DB (o recuperato ma non utilizzato) ma non eliminerebbero la connessione al database in modo da poter ottenere un nuovo cursore sullo stesso databaseSenza la necessità di autenticare di nuovo.

Altri suggerimenti

Come altri menzionano, un Connection() è la connessione di rete al database, ed è solo un uso reale è quello di restituire i cursori. PAP-249 , dove è specificato DBAPI 2.0, non definire chiaramente cosa esattamente Una connessione o un cursore è, né ciò che il metodo close() su ciascuno deve fare; solo quello <module>.connect(). deve restituire un'istanza di <module>.Connection. , quella <module>.Connection.cursor(). deve restituire un'istanza di <module>.Cursor. , e <module>.Cursor.execute(). dovrebbe richiamare la dichiarazione fornita e restituire le righe risultanti. In particolare, non definisce a <module>.Connection.execute(). , Sebbene le implementazioni specifiche siano libere di attuarle come estensioni.

A seconda di quelle estensioni è probabilmente poco saggio, però, dal momento che significa che non avrai come codice portatile. DBAPI rende questo requisito a due livelli perché avere un esecutivo sulla connessione senza un oggetto intermedio può essere difficile su alcuni database.

Connection Object è la tua connessione al database, chiudilo quando hai finito di parlare con il database tutto insieme.L'oggetto cursore è un iteratore su un risultato impostato da una query.Chiudi quelli quando hai finito con quel set di risultati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top