数据查询类封装
1. 功能分析
- 可以连接不同sql数据库
- 查一条数据,多条数据
- 可以获取不同格式的数据
2. 封装成数据库查询类
封装思路:
- 数据库查询模块有多个功能,且需要复用,所以封装成类
- 创建对象方法实现各种查询
- 在构造方法中创建连接
-
废话不多说,直接上代码!!!
# -*- coding: utf-8 -*- # @Time : 2019/11/13 14:51 # @Author : kira # @Email : 262667641@qq.com # @File : do_mysql.py # @Project : risk_projectimport pymysql from pymysql.cursors import DictCursorclass DoMysql:"""sql数据库查询类"""def __init__(self, db_config: dict):# 创建连接engine = db_config.pop('engine', 'mysql')if engine.lower() == 'mysql':self.conn = pymysql.connect(**db_config)elif engine.lower() == 'oracle':passdef __execute(self, sql, action, res_type='t', *args):""":param sql::param action: 字符串,指定执行cursor对应的方法:param res_type: 返回数据类型:param args: :return:"""if res_type == 't':cursor = self.conn.cursor()else:cursor = self.conn.cursor(DictCursor)try:cursor.execute(sql)return getattr(cursor, action)(*args)except Exception as e:raise efinally:cursor.close()def get_one(self, sql, res_type='t'):"""获取一条数据:param sql::param res_type: 返回数据的类型,默认为t表示以元组返回,'d'表示以字典的形式返回:return: 元组/字典"""# 数据库若断开即重连self.reConnect()return self.__execute(sql, 'fetchone', res_type)def get_many(self, sql, size, res_type='t'):# 数据库若断开即重连self.reConnect()return self.__execute(sql, 'fetchmany', res_type, size)def get_all(self, sql, res_type='t'):# 数据库若断开即重连self.reConnect()return self.__execute(sql, 'fetchall', res_type)def exist(self, sql):if self.get_one(sql):return Trueelse:return Falsedef reConnect(self):"""重连机制:@return"""try:self.conn.ping()except:self.conn()def __del__(self):"""对象销毁的时候自动会被调用:return:"""self.conn.close()if __name__ == '__main__':db = {'engine': 'mysql', # 指定mysql数据'host': '127.0.0.1','user': 'admin','password': '12345','port': 3306,'db': 'mysql','charset': 'utf8'}db = DoMysql(db)sql = 'select id, reg_name, mobile_phone from member limit 10'# res = db.get_one(sql)res = db.get_many(sql, size=5)print(res)
同时,我也准备了一份软件测试面试视频教程,需要的可以直接在下方观看,你也直接点击文末小卡片免费领取资料文档
视频教程观看处:
2023年B站最牛软件测试面试突击教程,字节大佬亲授,99%的人都能拿到offer
写在最后
最后在这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助,有需要的朋友你可以【点击文末小卡片免费领取】
除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近300个G,包括基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源。
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。