python 构建一个sqlite3数据库的类,包括根据models建立数据库,查询数据是否存在,插入或者更新数据,删除数据
时间: 2024-09-09 16:11:40 浏览: 47
在Python中构建一个处理SQLite3数据库的类,可以通过定义一系列方法来实现数据库的基本操作。以下是一个简单的类实现示例:
```python
import sqlite3
class SQLite3DB:
def __init__(self, db_name):
self.conn = sqlite3.connect(db_name)
self.cursor = self.conn.cursor()
self.create_tables()
def create_tables(self):
# 这里根据models定义来创建表结构
# 示例:创建一个简单的用户表
self.cursor.execute('''
CREATE TABLE IF NOT EXISTS user (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)
''')
self.conn.commit()
def query(self, sql, params=None):
self.cursor.execute(sql, params or ())
return self.cursor.fetchall()
def insert_or_update(self, sql, params=None):
try:
self.cursor.execute(sql, params)
self.conn.commit()
except sqlite3.IntegrityError:
# 处理可能的唯一键冲突等异常
self.conn.rollback()
self.update(sql, params)
def update(self, sql, params=None):
self.cursor.execute(sql, params)
self.conn.commit()
def delete(self, sql, params=None):
self.cursor.execute(sql, params)
self.conn.commit()
def close(self):
self.conn.close()
# 使用示例
db = SQLite3DB('example.db')
# 插入数据
db.insert_or_update('INSERT INTO user (name, age) VALUES (?, ?)', ('Alice', 30))
# 更新数据
db.update('UPDATE user SET age = ? WHERE id = ?', (35, 1))
# 查询数据
users = db.query('SELECT * FROM user WHERE name = ?', ('Alice',))
# 删除数据
db.delete('DELETE FROM user WHERE id = ?', (1,))
# 关闭数据库连接
db.close()
```
这个类中包含了创建表、查询、插入或更新、删除和关闭连接的方法。需要注意的是,在实际使用中,你应该根据自己的数据模型(models)来定义表结构和操作数据库的SQL语句。
阅读全文