python 定义一个sqlite3的通用数据库类
时间: 2024-09-09 11:00:17 浏览: 49
Python 访问 Sqlite 封装 实体,实现 增删改查
5星 · 资源好评率100%
在Python中定义一个用于操作SQLite3数据库的通用数据库类,可以遵循以下步骤来创建:
1. 导入sqlite3模块。
2. 定义一个数据库类,包含构造函数、打开数据库连接、执行查询、提交事务、回滚和关闭连接等基本方法。
3. 可以添加异常处理,确保数据库操作的安全性。
4. 可以提供封装好的执行SQL语句的方法,如执行读取、写入和删除操作。
下面是一个简单的示例实现:
```python
import sqlite3
class SQLiteDB:
def __init__(self, db_name):
# 初始化数据库连接
self.conn = None
self.db_name = db_name
self.connect()
def connect(self):
# 打开数据库连接
try:
self.conn = sqlite3.connect(self.db_name)
except sqlite3.Error as e:
print(f"数据库连接失败: {e}")
def execute_query(self, query, params=None):
# 执行SQL查询,params用于防止SQL注入
cur = None
try:
cur = self.conn.cursor()
if params:
cur.execute(query, params)
else:
cur.execute(query)
self.conn.commit() # 提交事务
except sqlite3.Error as e:
self.conn.rollback() # 出错回滚
print(f"查询执行失败: {e}")
finally:
if cur:
cur.close()
def execute_read(self, query, params=None):
# 执行读取操作(查询)
return self.execute_query(query, params)
def execute_write(self, query, params=None):
# 执行写入操作(更新、插入、删除)
return self.execute_query(query, params)
def close(self):
# 关闭数据库连接
if self.conn:
self.conn.close()
self.conn = None
# 使用示例
db = SQLiteDB('example.db')
db.execute_write('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)')
db.execute_write('INSERT INTO users (name) VALUES (?)', ('Alice',))
db.close()
```
上述类定义了一个非常基础的SQLite数据库操作类,实现了连接管理、基本的CRUD操作。在实际应用中,可能还需要添加更多功能,比如更复杂查询的支持、错误处理的增强、事务管理、连接池支持等。
阅读全文