Files
lawyers/Db.py
T
2026-03-02 00:19:48 +08:00

58 lines
1.9 KiB
Python

import pymysql
from config import DB_CONFIG
class Db:
def __enter__(self):
# 使用配置文件中的信息
self.db = pymysql.connect(**DB_CONFIG)
return self
def __exit__(self, exc_type, exc_val, exc_tb):
# 关闭数据库连接
self.db.close()
# 插入数据
def insert_data(self, table_name, data):
cursor = self.db.cursor()
sql = f"INSERT INTO {table_name} ({', '.join(data.keys())}) VALUES ({', '.join(['%s'] * len(data))})"
cursor.execute(sql, list(data.values()))
self.db.commit()
inserted_id = cursor.lastrowid # 获取插入行的 ID
cursor.close()
return inserted_id
# 查询数据
def select_data(self, table_name, columns="*", condition=None):
cursor = self.db.cursor(pymysql.cursors.DictCursor)
sql = f"SELECT {columns} FROM {table_name}"
if condition:
sql += f" WHERE {condition}"
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
return result
# 删除数据
def delete_data(self, table_name, condition):
cursor = self.db.cursor()
sql = f"DELETE FROM {table_name} WHERE {condition}"
cursor.execute(sql)
self.db.commit()
cursor.close()
# 更新数据
def update_data(self, table_name, data, condition):
cursor = self.db.cursor()
set_clause = ", ".join([f"{key} = %s" for key in data.keys()])
sql = f"UPDATE {table_name} SET {set_clause} WHERE {condition}"
cursor.execute(sql, list(data.values()))
self.db.commit()
cursor.close()
# 判断数据是否存在
def is_data_exist(self, table_name, condition):
cursor = self.db.cursor()
sql = f"SELECT COUNT(*) FROM {table_name} WHERE {condition}"
cursor.execute(sql)
result = cursor.fetchone()
cursor.close()
return result[0] > 0