python操作sqlite数据库封装类SQLite3Util

说明

python 操作 SQLite3 的方式非常简单,容易理解,但是,可以对这些操作进行进一步的封装,比如:执行 增删改 时,代码完全一样,只是传入 SQL 不同,所以定义 update() 方法,该方法可以执行 增删改 SQL 语句

代码

import sqlite3

class SQLite3Util:
    def __init__(self):
        self._conn = None

    def connect(self, path):
        '''
        连接数据库
        :param path:
        :return:
        '''
        self._conn = sqlite3.connect(path )

    def queryall(self, sql, paras=None):
        '''
        执行select语句,返回所有结果,list类型
        '''
        try:
            cursor = self._conn.cursor()
            if paras:
                cursor.execute(sql, paras)
            else:
                cursor.execute(sql)
            datas = cursor.fetchall()
            return datas
        finally:
            cursor.close()

    def queryone(self, sql, paras=None):
        '''
        执行select语句,返回一条记录,tuple类型
        '''
        try:
            cursor = self._conn.cursor()
            cursor.execute(sql,paras)
            data = cursor.fetchone()
            return data
        finally:
            cursor.close()

    def update(self, sql, paras = None):

        '''
        执行insert、update、delete语句,返回影响的记录数据
        '''
        try:
            cursor = self._conn.cursor()
            if paras:
                cursor.execute(sql, paras)
            else:
                cursor.execute(sql)
            rowcount = cursor.rowcount
            return rowcount
        finally:
            cursor.close()

    def commit(self):
        self._conn.commit()

    def rollback(self):
        self._conn.rollback()

    def close(self):
        self._conn.close()


if __name__ == "__main__":
    try:
        db=SQLite3Util()
        db.connect("test.db")
        n = db.update("""
            create table t_student(
            id text,
            name text,
            sex text,
            create_time text)
        """)
        # num=db.update("update user set password=%s where id=%s",['1','3920e47cf7224e0eb9a1d75f9ded3f4e'])
        # print(num)
        # db.commit()
    finally:
        db.close()

原文出处:/show_1GW1srqnpKgG.html