我一直在使用命令cur.close()
一旦我完成了数据库:
import sqlite3
conn = sqlite3.connect('mydb')
cur = conn.cursor()
# whatever actions in the database
cur.close()
然而,我只是在某些情况下看到了以下方法:
import sqlite3
conn = sqlite3.connect('mydb')
cur = conn.cursor()
# whatever actions in the database
cur.close()
conn.close()
而在官方文档 https://docs.python.org/2/library/sqlite3.html有时光标被关闭,有时连接被关闭,有时两者都被关闭。
我的问题是:
- 有什么区别吗
cur.close()
and conn.close()
?
- 完成后关闭一个就足够了(或者我必须关闭两个)?如果是这样,哪一个更可取?
[关于关闭游标]
如果关闭游标,您只是将其标记为无效以处理进一步的请求(“我已完成此操作”)。
因此,在函数/事务结束时,您应该继续关闭游标,向数据库提示该事务已完成。
一个好的模式是使游标短暂存在:您从连接对象中获取一个游标,执行您需要的操作,然后丢弃它。所以关闭是有道理的,你应该继续使用cursor.close()
在使用它的代码部分的末尾。
I believe(找不到任何引用)如果您只是让光标超出范围(函数结束,或者只是del cursor
)你应该得到相同的行为。但为了良好的编码实践,您应该明确关闭它。
[连接对象]
当你真正完成时与数据库,你应该关闭你的联系到它。这意味着connection.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)