以下是一个简单的数据库操作类,其中包含了通用的增删改查操作:
```python
import sqlite3
class Database:
def __init__(self, db_name):
self.db_name = db_name
self.conn = sqlite3.connect(db_name)
self.cursor = self.conn.cursor()
def execute_query(self, query, params=None):
try:
if params:
self.cursor.execute(query, params)
else:
self.cursor.execute(query)
self.conn.commit()
return True
except Exception as e:
print(f"Error executing query: {e}")
return False
def select(self, table, columns="*", where=None):
query = f"SELECT {columns} FROM {table}"
if where:
query += f" WHERE {where}"
self.cursor.execute(query)
rows = self.cursor.fetchall()
return rows
def insert(self, table, values):
placeholders = ",".join(["?" for _ in range(len(values))])
query = f"INSERT INTO {table} VALUES ({placeholders})"
return self.execute_query(query, values)
def update(self, table, set_values, where):
set_clause = ",".join([f"{k} = ?" for k in set_values.keys()])
query = f"UPDATE {table} SET {set_clause} WHERE {where}"
return self.execute_query(query, list(set_values.values()))
def delete(self, table, where):
query = f"DELETE FROM {table} WHERE {where}"
return self.execute_query(query)
def close(self):
self.cursor.close()
self.conn.close()
```
这个类使用了Python内置的sqlite3模块来连接和操作数据库。在初始化时,我们传入数据库文件名,并创建了一个连接和游标对象。execute_query方法用于执行任意的SQL查询语句,可以是增删改查操作。select、insert、update和delete方法则分别对应了SELECT、INSERT、UPDATE和DELETE语句,并使用execute_query方法来执行。其中,select方法返回所有符合条件的行,而insert、update和delete方法则返回True或False表示操作是否成功。
这个类还提供了一个close方法,用于关闭连接和游标对象。在使用完毕