pysqlite2中数据库对象和游标对象有什么区别?

时间:2011-02-03 07:28:27

标签: python database sqlite cursor pysqlite

在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 个答案:

答案 0 :(得分:3)

connection.execute方法是SQLite API扩展;它没有由DB-API指定:http://www.python.org/dev/peps/pep-0249/。它只是创建游标并在其上调用execute的简写,返回光标。

如果您想确保您的代码可以与其他基于DB-API的数据库库一起使用,则不应该使用它。