# coding=gbk
import pymysql
import threading
lock = threading.Lock()
class Db():
def __init__(self):
self.conn = pymysql.connect(host='localhost',port=3306,charset='utf8',user='root',password='123',cursorclass=pymysql.cursors.DictCursor,database='p9pro')
self.cursor = self.conn.cursor()
# 添加 删除 修改
def update(self,sql):
try:
# 检查连接是否断开,如果断开就进行重连
self.conn.ping(reconnect=True)
# 使用 execute() 执行sql
self.cursor.execute(sql)
# 提交事务
self.conn.commit()
return self.cursor.lastrowid
except Exception as e:
print("操作出现错误:{}".format(e))
# 回滚所有更改
self.conn.rollback()
# 找多个
def find_all(self, sql):
lock.acquire()
self.cursor.execute(sql)
self.conn.ping(reconnect=True)
lock.release()
res = self.cursor.fetchall()
return res
# 找单个
def find(self,sql):
# 检查连接是否断开,如果断开就进行重连
lock.acquire()
self.cursor.execute(sql)
self.conn.ping(reconnect=True)
lock.release()
res = self.cursor.fetchone()
return res
# 执行sql语句 但是不会提交到数据库
def add(self,sql):
self.cursor.execute(sql)
# 提交sql语句
def commit(self):
self.conn.commit()
# 回滚 如果一堆数据 如果一个错误 全部不执行
def rollback(self):
self.conn.rollback()
def __del__(self):
self.cursor.close()
self.conn.close()
db1 = Db()
python PyMysql
最新推荐文章于 2022-06-08 17:00:00 发布