Pregunta

Estoy confundido acerca de por qué Python necesita un objeto de cursor.Conozco jdbc y allí la conexión a la base de datos es bastante intuitiva, pero en Python estoy confundido con el objeto cursor.También tengo dudas sobre cuál es la diferencia entre las funciones cursor.close() y connect.close() en términos de liberación de recursos.

¿Fue útil?

Solución

El paradigma del cursor no es específico de Python, pero es una estructura de datos frecuente en bases de datos en sí mismas .

Dependiendo de la implementación subyacente, puede ser posible generar varios cursores compartiendo la misma conexión con una base de datos.El cierre del cursor debe obtener recursos libres asociados a la consulta, incluidos los resultados que nunca se obtienen de la base de datos (o recuperados pero no utilizados), pero no eliminarían la conexión a la base de datos para que pueda obtener un nuevo cursor en la misma base de datos.Sin la necesidad de autenticar de nuevo.

Otros consejos

Como otros mencionan, un Connection() es la conexión de red a la base de datos, y su único uso real es devolver cursores. pep-249, donde se especifica DBApi 2.0, no define claramente qué es exactamente una conexión o cursor, ni cuál es el close() método en cada uno debe hacer;sólo eso<módulo>.connect() debe devolver una instancia de<módulo>.Connection, eso<módulo>.Connection.cursor()debe devolver una instancia de<módulo>.Cursor, y<módulo>.Cursor.execute()debe invocar la declaración proporcionada y devolver las filas resultantes.En particular, no define una<módulo>.Connection.execute(), aunque las implementaciones específicas son libres de implementarlas como extensiones.

Sin embargo, depender de esas extensiones probablemente no sea prudente, ya que significa que no tendrá un código portátil.DBApi exige este requisito de dos niveles porque realizar una ejecución en la conexión sin un objeto intermedio puede resultar difícil en algunas bases de datos.

El objeto de conexión es su conexión a la base de datos, cierre cuando haya terminado de hablar con la base de datos todos juntos.El objeto del cursor es un iterador en un lugar de resultados de una consulta.Cierre aquellos cuando haya terminado con ese conjunto de resultados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top