Python封装MySQL数据库操作(pymysql)
class DbManager(object):
def __init__(self):
self.conn = None
self.cur = None
self.POOL = PooledDB(
creator=pymysql,
maxconnections=20,
mincached=5,
maxcached=0,
maxusage=1,
blocking=True,
setsession=[],
host="your host",
port="your port",
user="your user",
password="your password",
database="your db",
charset="utf8",
)
def connectDatabase(self):
try:
self.conn = self.POOL.connection()
self.cur = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
return True
except:
Logger().logger.error("connectDatabase failed")
return False
def close(self):
if self.conn and self.cur:
self.cur.close()
self.conn.close()
return True
def execute(self, sql, params=None, exe_many=False):
res = self.connectDatabase()
if not res:
return False
cnt = 0
try:
if self.conn and self.cur:
if exe_many:
cnt = self.cur.executemany(sql, params)
else:
cnt = self.cur.execute(sql, params)
self.conn.commit()
except Exception as e:
Logger().logger.error("execute failed: " + sql)
Logger().logger.error(str(e) + "\n\n")
return False
self.close()
return cnt
def table_insert(self, **kwargs)