import pymysql
from warningsimport filterwarnings
# 忽略MySql告警信息
filterwarnings("ignore", category=pymysql.Warning)
class MysqlDb:
def __init__(self):
# 建立数据库连接
self.conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="123456", db="case_demo",
charset="utf8")
# 使用cursor方法获取操作游标,得到一个可以执行的sql语句,并且操作结果作为字典返回的游标
self.cursor =self.conn.cursor(cursor=pymysql.cursors.DictCursor)
def __del__(self):
# 关闭游标
self.cursor.close()
# 关闭连接
self.conn.close()
def query(self, sql, state="all"):
"""
查询
:paramsql:
:param state: all默认查询全部
:return:
"""
self.cursor.execute(sql)
if state =="all":
# 查询全部
data =self.cursor.fetchall()
else:
# 查询单条
data =self.cursor.fetchone()
return data
def execute(self, sql):
"""
更新、删除、新增
:paramsql:
:return:
"""
try:
# 使用execute操作sql
rows =self.cursor.execute(sql)
# 提交事务
self.conn.commit()
return rows
except Exception as e:
print(f"数据库操作异常{e}")
# 回滚修改
self.conn.rollback()
if __name__ =='__main__':
mydb = MysqlDb()
# r = mydb.query(sql="select * from config", state="all")
r=mydb
print(r)