mysql 事务框架
import pymysql
import logging
class MysqlHandler:
"""
Mysql事务框架
"""
__mysql_client = pymysql.connect('mysql_host', 'mysql_user', 'mysql_password', 'mysql_db', charset='utf8')
def __init__(self):
pass
def start(self):
try:
self.__process()
except Exception as e:
logging.error(repr(e))
self.__mysql_client.rollback()
finally:
self.__end()
def __end(self):
self.__mysql_client.commit()
self.__mysql_client.close()
def __process(self):
self.__mysql_select_handler(sql='')
self.__mysql_operate_handler(sql='', params=[])
def __mysql_select_handler(self, sql):
"""
查询数据: 执行输入sql, 返回数据
:param sql: 完整SQL语句
:return: 查询结果
"""
logging.info('selecting from Mysql ...')
with self.__mysql_client.cursor() as cursor:
cursor.execute(sql)
data = cursor.fetchall()
return data
def __mysql_operate_handler(self, sql, params=None):
"""
插入数据: 执行输入sql, 返回受影响行数
:param sql: 完整SQL语句
:param params: 参数
:return: 受影响行数
"""
logging.info('operating Mysql ...')
logging.info(sql)
with self.__mysql_client.cursor() as cursor:
if params:
effect_row = cursor.execute(sql, params)
else:
effect_row = cursor.execute(sql)
logging.info('effect row: {row_ct}.'.format(row_ct=effect_row))
return effect_row