• 基础类封装-pymysql库操作mysql封装


     1 import pymysql
     2 from lib.logger import logger
     3 from warnings import filterwarnings
     4 filterwarnings("ignore",category=pymysql.Warning) # 忽略mysql警告信息
     5 
     6 class MysqlDb():
     7 
     8     logger = logger
     9 
    10     def __init__(self, host, port, user, passwd):
    11         # 建立数据库连接
    12         self.conn = pymysql.connect(
    13             host=host,
    14             port=port,
    15             user=user,
    16             passwd=passwd,
    17             charset='utf8'
    18         )
    19         # 通过 cursor() 创建游标对象,并让查询结果以字典格式输出
    20         self.cur = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
    21 
    22     def __del__(self): # 对象资源被释放时触发,在对象即将被删除时的最后操作
    23         # 关闭游标
    24         self.cur.close()
    25         # 关闭数据库连接
    26         self.conn.close()
    27 
    28     def select_db(self,db_name):
    29         """
    30         选择数据库
    31         :return:
    32         """
    33         try:
    34             self.conn.select_db(db_name)
    35             self.logger.logger.info("选择 {0} 执行成功".format(db_name))
    36         except Exception as e:
    37             self.logger.logger.exception("操作出现错误:{0}".format(e))
    38 
    39     def query_db(self, sql,state="all"):
    40         """
    41         查询
    42         :param sql:sql语句
    43         :param state:all查询所有,outhor查询单条
    44         :return:
    45         """
    46         # 使用 execute() 执行sql
    47         self.logger.logger.info(sql)
    48         self.cur.execute(sql)
    49         if state == "all":
    50             # 使用 fetchall() 获取查询结果
    51             data = self.cur.fetchall()
    52         else:
    53             data = self.cur.fetchone()
    54         return data
    55 
    56     def execute_db(self, sql):
    57         """更新/插入/删除"""
    58         try:
    59             # 使用 execute() 执行sql
    60             self.cur.execute(sql)
    61             # 提交事务
    62             self.conn.commit()
    63             self.logger.logger.info("{0} 执行成功".format(sql))
    64         except Exception as e:
    65             self.logger.logger.exception("操作出现错误:{}".format(e))
    66             # 回滚所有更改
    67             self.conn.rollback()
    68 
    69 if __name__ == '__main__':
    70     pass
  • 相关阅读:
    Linux基础命令-pwd
    Linux基础命令-sosreport
    c#设置xml内容不换行;添加属性为xsi:nil="true"的空节点
    sql ROW_NUMBER() 排序函数
    服务器×××上的MSDTC不可用解决办法
    MSDTC Service的访问权限
    setTimeout
    ASP.NET中Request.Form中文乱码的解决方
    js实现小数点后保留N位并可以四舍五入——js对float数据的处理
    Meta标签中的viewport属性含义及设置
  • 原文地址:https://www.cnblogs.com/tython/p/12701392.html
Copyright © 2020-2023  润新知