python 封装一个sqlite3的通用数据库类,包含构造函数、打开数据库连接、执行查询、提交事务、回滚和关闭连接等基本方法。
时间: 2024-09-09 18:00:56 浏览: 27
在Python中,可以通过封装一个类来实现对sqlite3数据库的基本操作。下面是一个简单的示例,其中包含了构造函数、打开数据库连接、执行查询、提交事务、回滚和关闭连接等基本方法:
```python
import sqlite3
class SQLiteDB:
def __init__(self, db_file):
self.db_file = db_file
self.conn = None
def connect(self):
"""打开数据库连接"""
try:
self.conn = sqlite3.connect(self.db_file)
except sqlite3.Error as e:
print(f"无法打开数据库: {e}")
def execute_query(self, query, params=None):
"""执行SQL查询"""
if self.conn is None:
print("数据库连接未建立")
return None
cursor = self.conn.cursor()
try:
if params:
cursor.execute(query, params)
else:
cursor.execute(query)
self.conn.commit()
return cursor.fetchall()
except sqlite3.Error as e:
print(f"执行查询时发生错误: {e}")
return None
finally:
cursor.close()
def begin_transaction(self):
"""开始事务"""
self.connect()
self.conn.execute('BEGIN')
def commit_transaction(self):
"""提交事务"""
if self.conn:
self.conn.commit()
def rollback_transaction(self):
"""回滚事务"""
if self.conn:
self.conn.rollback()
def close_connection(self):
"""关闭数据库连接"""
if self.conn:
self.conn.close()
# 使用示例
db = SQLiteDB('example.db')
db.connect()
db.begin_transaction()
data = db.execute_query('SELECT * FROM table_name WHERE id=?', params=(1,))
if data:
print("查询结果:", data)
db.commit_transaction()
db.close_connection()
```
在这个示例中,`SQLiteDB` 类包含了以下方法:
- `__init__`: 构造函数,初始化数据库文件路径。
- `connect`: 打开数据库连接。
- `execute_query`: 执行SQL查询并返回查询结果。
- `begin_transaction`: 开始一个事务。
- `commit_transaction`: 提交当前事务。
- `rollback_transaction`: 如果有未提交的事务,回滚到事务开始前的状态。
- `close_connection`: 关闭数据库连接。
请注意,实际使用时应该根据具体的数据库表结构和业务逻辑来调整查询方法,并处理可能的异常。