python 封装一个sqlite3的通用数据库类,包含构造函数、打开数据库连接、执行查询数据、确认无相同数据时插入数据,修改某一个列的一个数据,遍历数据,提交事务、回滚和关闭连接,基本方法。
时间: 2024-09-08 07:02:06 浏览: 59
在Python中,你可以创建一个封装了sqlite3操作的通用数据库类,这个类可以包含以下方法:
1. 构造函数(__init__):用于初始化数据库文件路径和创建数据库连接对象。
2. 打开数据库连接(connect):使用sqlite3的connect方法打开数据库连接。
3. 执行查询数据(execute_query):接受SQL查询语句,并使用cursor对象执行。
4. 插入数据(insert_data):在确认表中没有相同的数据后,执行插入操作。
5. 修改数据(update_data):接受列名和新的值,更新数据库中对应的数据。
6. 遍历数据(iterate_data):遍历数据库表中的所有数据。
7. 提交事务(commit):提交当前的数据库事务。
8. 回滚(rollback):在出现异常时撤销当前事务。
9. 关闭连接(close_connection):关闭数据库连接。
以下是一个简单的数据库类实现范例:
```python
import sqlite3
class SQLiteDB:
def __init__(self, db_file):
self.conn = None
self.db_file = db_file
def connect(self):
self.conn = sqlite3.connect(self.db_file)
self.cursor = self.conn.cursor()
def execute_query(self, query, params=None):
self.cursor.execute(query, params or ())
return self.cursor.fetchall()
def insert_data(self, table, data):
columns, values = zip(*data.items())
placeholders = ', '.join('?' * len(values))
sql = f'INSERT INTO {table} ({", ".join(columns)}) VALUES ({placeholders})'
self.execute_query(sql, values)
def update_data(self, table, column, new_value, where=None):
if where:
sql = f'UPDATE {table} SET {column}=? WHERE {where}'
else:
sql = f'UPDATE {table} SET {column}=?'
self.execute_query(sql, (new_value,))
def iterate_data(self, table):
for row in self.execute_query(f'SELECT * FROM {table}'):
yield row
def commit(self):
self.conn.commit()
def rollback(self):
self.conn.rollback()
def close_connection(self):
self.conn.close()
# 使用示例:
db = SQLiteDB('example.db')
db.connect()
db.insert_data('users', {'id': 1, 'name': 'Alice'})
db.update_data('users', 'name', 'Bob', where='id=1')
for user in db.iterate_data('users'):
print(user)
db.commit()
db.close_connection()
```
阅读全文