#coding=utf-8
importtracebackimportMySQLdbfrom DBUtils.PooledDB importPooledDB
db_pool_ins=None#需要替换用户名,密码等
classDBPool():def __init__(self):
self.pool= PooledDB(creator=MySQLdb, mincached=1, maxcached=10, maxconnections=100, blocking=True,
host= "127.0.0.1", port=3306, user='', passwd='',
db='test', charset='utf8',)defget_connection(self):returnself.pool.connection()classDBAction():#连接池对象
def __init__(self):#建立和数据库系统的连接
globaldb_pool_insif db_pool_ins ==None:
db_pool_ins=DBPool()
self.conn=db_pool_ins.get_connection()#获取操作游标
self.cursor =self.conn.cursor()defclose_database(self):
self.cursor.close()
self.conn.close()def data_operate(self, sql, params=()):'''数据的插入,更新,删除
:param database:
:param sql:
:return: 成功:0,失败:1'''
try:
self.cursor.execute(sql, params)
self.conn.commit()return0except:print("sql is %s, params is %s error. %s" %(sql, params, traceback.format_exc()))
self.conn.rollback()raiseExceptiondef data_operate_many(self, sql, params=()):'''数据的插入,更新,删除
:param sql:
:param params:
:return: 成功:0,失败:1'''
#执行sql语句
self.cursor.executemany(sql, params)#提交到数据库执行
self.conn.commit()def data_operate_count(self, sql, params=()):'''数据的插入,更新,删除
:return: 受影响的条数'''
#执行sql语句
count =self.cursor.execute(sql, params)#提交到数据库执行
self.conn.commit()returncountdef data_inquiry(self, sql, size=10, params=()):''':param database:
:param sql:
:return: ((),(),...,())'''self.cursor.execute(sql, params)
result=self.cursor.fetchmany(size)returnresultdef data_inquiry_all(self, sql, params=()):''':param database:
:param sql:
:return: ((),(),...,())'''self.cursor.execute(sql, params)
result=self.cursor.fetchall()returnresultdefcommit(self):
self.conn.commit()