通用数据库连接
把以上的增删改查函数包装到类中可以更好地组织代码,提高代码的可读性和可维护性。下面是一个使用类封装的示例:
复制
import pymysql
class MySQL:
def __init__(self, host='localhost', port=3306, user='root', password='', database=None):
self.host = host
self.port = port
self.user = user
self.password = password
self.database = database
def __enter__(self):
self.conn = pymysql.connect(host=self.host, port=self.port, user=self.user, password=self.password, database=self.database)
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.conn.close()
def select_all(self, table):
with self.conn.cursor() as cursor:
cursor.execute(f'select * from {table}')
result = cursor.fetchall()
return result
def update(self, table, data, condition):
with self.conn.cursor() as cursor:
set_clause = ', '.join([f'{k}="{v}"' for k, v in data.items()])
cursor.execute(f'update {table} set {set_clause} where {condition}')
self.conn.commit()
return cursor.rowcount
def delete(self, table, condition):
with self.conn.cursor() as cursor:
cursor.execute(f'delete from {table} where {condition}')
self.conn.commit()
return cursor.rowcount
def insert(self, table, data):
with self.conn.cursor() as cursor:
keys = ', '.join(data.keys())
values = ', '.join([f'"{v}"' for v in data.values()])
cursor.execute(f'insert into {table} ({keys}) values ({values})')
self.conn.commit()
return cursor.lastrowid
在上述示例中,我们定义了一个MySQL类,它包含了初始化方法、__enter__方法和__exit__方法。初始化方法用于初始化数据库连接参数,__enter__方法创建数据库连接并返回类实例,__exit__方法关闭数据库连接。除此之外,我们还定义了四个通用的方法:select_all、update、delete和insert,它们与之前的函数实现基本相同。使用类封装的优势在于可以更好地组织代码,使代码更加简洁和易于维护。
本文来自博客园,作者:热爱技术的小牛,转载请注明原文链接:https://www.cnblogs.com/my-blogs-for-everone/p/17475552.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架