说明
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()