我对Python 的 sqlite3 模块(以及一般的 SQL)完全陌生,这完全让我难过。大量缺乏对cursor
对象的描述(更确切地说,它们的必要性)似乎也很奇怪。
这段代码是首选的做事方式:
import sqlite3
conn = sqlite3.connect("db.sqlite")
c = conn.cursor()
c.execute('''insert into table "users" values ("Jack Bauer", "555-555-5555")''')
conn.commit()
c.close()
这个不是,即使它工作得一样好并且没有(看似毫无意义)cursor
:
import sqlite3
conn = sqlite3.connect("db.sqlite")
conn.execute('''insert into table "users" values ("Jack Bauer", "555-555-5555")''')
conn.commit()
谁能告诉我为什么我需要一个cursor
?
这似乎是毫无意义的开销。对于我的脚本中访问数据库的每个方法,我应该创建和销毁一个cursor
?
为什么不直接使用connection
对象?