SQLite实现的打开/关闭功能

时间:2010-09-20 18:07:00

标签: python pysqlite

我正在尝试提出SQLiteDB对象,以下是它的打开/关闭代码。 这有效吗?我错过了一些重要的事情吗?

对于close(),我使用con.close()和cursor.close(),但我想知道是否需要cursor.close()。

class SQLiteDB(object):
    def __init__(self, dbFile, connect = True):
        self.dbFile = dbFile

        self.con = None
        self.cursor = None

        if connect:
            self.open()

    def __del__(self):
        if self.con:
            self.close()

    def open(self):
        self.con = sqlite3.connect(self.dbFile)
        self.cursor = self.connector.cursor()
        return self.con, self.cursor

    def close(self):
        self.con.close()
        self.cursor.close()
        self.cursor = None
        self.con = None

1 个答案:

答案 0 :(得分:1)

Cursor.close()上发生的事情取决于底层数据库实现。对于SQLite,它可能目前无需关闭,但对于其他实现或未来的SQLite版本,它可能不会,所以我建议关闭Cursor对象。您可以在PEP 249中找到有关Cursor.close()的更多信息。

此外,您的代码中似乎存在拼写错误:

self.connector = sqlite3.connect(self.dbFile)

应该是

self.con = sqlite3.connect(self.dbFile)

否则你的代码对我来说很好。快乐的编码:)。