Pergunta

Estou confuso sobre por que python precisa objeto de cursor.Eu sei jdbc e há a conexão de banco de dados é bastante intuitiva, mas em python eu sou confundido com o objeto de cursor.Também estou em dúvida sobre qual é a diferença entre o cursor.fechar() e conexão.close() função em termos de liberação de recursos.

Foi útil?

Solução

O paradigma do cursor não é específico para o Python, mas é uma estrutura de dados frequente em bancos de dados . .

Dependendo da implementação subjacente, pode ser possível gerar vários cursores compartilhando a mesma conexão com um banco de dados.Fechar o cursor deve liberar recursos associados à consulta, incluindo quaisquer resultados nunca buscados a partir do DB (ou buscado, mas não usado), mas não eliminaria a conexão com o próprio banco de dados, então você seria capaz de obter um novo cursor no mesmo banco de dados no mesmo banco de dadossem a necessidade de autenticar novamente.

Outras dicas

Como os outros falar, Connection() é a conexão de rede para o banco de dados, e é só o uso real é retornar os cursores. PEP-249, onde DBApi 2.0 é especificado, não definir claramente o que exatamente uma conexão ou o cursor está, nem o que o close() método em cada um deve fazer;só que <module>.connect() deve retornar uma instância de <module>.Connection , que <module>.Connection.cursor() deve retornar uma instância de <module>.Cursor e <module>.Cursor.execute() deve invocar a declaração prevista e retornar as linhas resultantes.Em particular, ele não define um <module>.Connection.execute() , apesar de implementações específicas são livres para implementá-los como extensões.

Dependendo dessas extensões é, provavelmente, imprudente, pois isso significa que você não tem como código portátil.DBApi faz este nível de exigência, porque ter uma execução na conexão sem intermediários de um objeto pode ser difícil em alguns bancos de dados.

Objeto de conexão é a sua conexão com o banco de dados, feche que quando terminar de conversar com o banco de dados todos juntos.O objeto de cursor é um iterador sobre um conjunto de resultados de uma consulta.Feche aqueles quando você terminar com esse conjunto de resultados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top