起因
在使用python写某些测试工具类的时候需要从数据库读取已有数据作为测试参数
python的pymysq提供了对MySQL数据库连接以及操作的方法,为了方便使用把读取MySQL方法封装一下
代码构成部分
- 使用已有的读取config配置文件的方法读取MySQL配置信息
- 使用已有的日志打印方法打印错误日志信息
#获取文件读取类对象,获取日志打印类对象
def __init__(self):
self.config = Config.Config()
self.log = Log.MyLog()
- 创建数据库连接自定义读取函数入参信息,并根据传入参数判断返回数据条数
def read_mysql(self,sql,type = 0,num = 10):
host = self.config.sql_host
port = int(self.config.sql_port)
user = self.config.sql_user
password = self.config.sql_password
try:
#创建mysql连接
mysql = pymysql.connect(host=host,port=port,user=user,password=password)
#cursor获取数据库操作游标
cursor = mysql.cursor()
#执行sql语句
cursor.execute(sql)
'''
默认返回查询一条数据,type为1时需要传入返回数据条数,type为2时返回所有查询结果
'''
if type == 0:
reslut = cursor.fetchone()
elif type == 1:
reslut = cursor.fetchmany(num)
elif type == 2:
reslut = cursor.fetchall()
return reslut
- 异常处理并打印日志
except Exception as e:
self.log.error("数据库查询错误,错误信息:{0}".format(e))
raise
#关闭数据库连接
mysql.close()
执行效果如下
- 查询返回1条数据
- 查询返回指定条数数据
- 返回全部数据