zoukankan      html  css  js  c++  java
  • python之pymysql的使用

    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    """
    @author: yunhgu
    @time:   2021/4/29 9:10
    @file:   MysqlClient.py
    @description: connect with mysql and option it
    """
    import pymysql
    from bin.LogTool import log
    
    logger = log()
    
    
    class MysqlClient:
        def __init__(self, host, port, user, password, db):
            try:
                # 创建一个连接数据库的对象
                self.conn = pymysql.connect(host=host, port=port, user=user, password=password, database=db, charset='utf8',
                                            cursorclass=pymysql.cursors.DictCursor)
                # 使用cursor()方法创建一个游标对象,用于操作数据库
                self.cur = self.conn.cursor()
            except Exception as e:
                print(f"MysqlClient init error : {e}")
                logger.error('MysqlClient init error : %s', e)
    
        # 查询数据
        def search(self, sql):
            try:
                self.cur.execute(sql)
                result = self.cur.fetchall()
            except Exception as e:
                print(f'MysqlClient search error : {e}')
                logger.error('MysqlClient search error : %s', e)
                return None
            return result
    
        # 插入数据
        def insert(self, sql):
            try:
                self.cur.execute(sql)  # 执行sql
                self.conn.commit()  # 增删改操作完数据库后,需要执行提交操作
            except Exception as e:
                print(f'MysqlClient insert error : {e}')
                logger.error('MysqlClient insert error : %s', e)
                # 发生错误时回滚
                self.conn.rollback()
                logger.info('MysqlClient insert error but had rollback: %s', sql)
                return False
            return True
    
        # 更新数据
        def update(self, sql):
            try:
                self.cur.execute(sql)  # 执行sql
                self.conn.commit()  # 增删改操作完数据库后,需要执行提交操作
            except Exception as e:
                print(f'MysqlClient update error : {e}')
                logger.error('MysqlClient update error : %s', e)
                # 发生错误时回滚
                self.conn.rollback()
                logger.info('MysqlClient update error but had rollback: %s', sql)
                return False
            return True
    
        # 删除数据
        def delete(self, sql):
            try:
                self.cur.execute(sql)  # 执行sql
                self.conn.commit()  # 增删改操作完数据库后,需要执行提交操作
            except Exception as e:
                print(f'MysqlClient delete error : {e}')
                logger.error('MysqlClient delete error : %s', e)
                # 发生错误时回滚
                self.conn.rollback()
                logger.info('MysqlClient delete error but had rollback: %s', sql)
                return False
            return True
    
    
    if __name__ == '__main__':
        mysql = MysqlClient('127.0.0.1', 3306, 'root', '123456', 'uat_mq')
        mysql.insert("INSERT INTO exchanges(virtual_host,exchange_name,exchange_type,
        create_time,state,info) VALUES('uat','exchange_name_02','fanout',NOW(),'using','info message');")
        result = mysql.search('select * from exchanges')
        print(result)
    不论你在什么时候开始,重要的是开始之后就不要停止。 不论你在什么时候结束,重要的是结束之后就不要悔恨。
  • 相关阅读:
    C#面向过程之类型转换、算术运算符、关系运算符、逻辑运算符、if-else语句、switch-case、循环结构(while、for)、三元表达式
    C#面向过程之编译原理、变量、运算符
    VS快捷键整理
    简单聊聊mybatis插件(附源码)
    高性能页面加载技术(流水线加载)BigPipe的C#简单实现(附源码)
    聊聊js运算符 ‘与(&&)’和‘ 或(||)’
    从内部剖析C# 集合之--Dictionary
    从内部剖析C# 集合之---- HashTable
    字符串查找和函数操作题目解析
    常用排序算法实现
  • 原文地址:https://www.cnblogs.com/yunhgu/p/14734046.html
Copyright © 2011-2022 走看看