pysqlite2中数据库对象和游标对象有什么区别?
在Python中,我们可以使用 pysqlite2
类来与sqlite数据库进行交互。
首先,我们需要导入这个类,代码是:from pysqlite2 import dbapi2 as sqlite
向数据库发送命令的一种方法是通过数据库对象来实现:
db = sqlite.connect('mydb.sqlite')
db.execute('CREATE TABLE IF NOT EXISTS t1(a, b, c)')
另一种方法是通过游标来实现:
cur = db.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS t2(x, y, z)')
这两种方法都可以正常工作,完成任务。不过,我觉得在某些情况下,可能会更倾向于使用其中一种方法。那具体是什么情况呢?
1 个回答
3
connection.execute
方法是一个SQLite的扩展功能,它并不是DB-API标准里规定的内容:http://www.python.org/dev/peps/pep-0249/。这个方法其实就是简化了创建一个游标(cursor)并在它上面调用 execute
的过程,最后返回这个游标。
如果你想确保你的代码能够在其他基于DB-API的数据库库中正常工作,那就不应该使用这个方法。