import pymysql
from dbutils.persistent_db import PersistentDB
class MysqlUtil:
def __init__(self, host, port, user, password, database):
self.__pool = PersistentDB(
creator=pymysql,
maxusage=None, # 一个链接最多被重复使用的次数,None表示无限制
setsession=[], # 开始会话前执行的命令列表。如:["set datestyle to ...", "set time zone ..."]
ping=0, # ping MySQL服务端,检查是否服务可用。
closeable=False, # 如果为False时, conn.close() 会把连接重新放到线程池中。如果为True时, conn.close()则关闭链接,不会放到线程池,
# 那么再次调用pool.connection时就会报错,(注:pool.steady_connection()可以获取一个新的链接)
threadlocal=None, # 本线程独享值得对象,用于保存链接对象,如果链接对象被重置
host=host,
port=port,
user=user,
password=password,
database=database,
charset='utf8',
)
self.__connect = self.__pool.connection()
def connect(self):
if self.__connect is None:
self.__connect = self.__pool.connection()
return self.__connect
def close(self):
self.__connect.close()
def insert(self, sql, args=()):
cursor = self.__connect.cursor()
cursor.execute(sql, args)
def query(self, sql, args=()):
cursor = self.__connect.cursor()
cursor.execute(sql, args)
return cursor.fetchall()
if __name__ == '__main__':
mysqlUtil = MysqlUtil("localhost", 3306, "root", "123456", "test")
result = mysqlUtil.query("select * from test where name=%s", ('无敌小怪兽', ))
print(result[0])
mysqlUtil.close()
06-25
191
10-02
805