python封装一个工具类 ,对MySQL数据库增删改查,可多字段动态插入mysql数据库中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import pymysql#导入库
class Connct_mysql():#创建一个连接数据库的类
 
    def __init__(self,host,user,password,db,port):#在构造函数里面传入连接数据库的参数作为实例变量
        ''' 连接数据库所需要的参数 '''
        self.host = host
        self.user = user
        self.password = password
        self.db = db
        self.port = port
 
 
    def connct_db(self):#定义连接数据库的方法
        try:#try+except 捕获异常
            global db#global把db对象,设置为全局变量
            #connect方法连接数据库,实例变量作为参数传入
            db = pymysql.connect(host=self.host, user=self.user, password=self.password, db=self.db, port=self.port)
            global cursor#global把cursor方法创建游标对象对象,设置为全局变量
            cursor=db.cursor()#cursor方法创建游标对象
        except Exception as e:#连接数据库事变是会任意捕获异常
            print('数据库连接失败', e)
 
 
 
 
    def select_connct(self,sql):#定义查询方法,sql为形参,用例传递sql语句
        try:
            cursor.execute(sql)#通过游标对象,调用execute执行方法,查询sql语句
            print(cursor.fetchall())#通过游标获取,表数据内容,并打印
        except Exception as e:
            print(e)
            db.rollback()
 
    def update_connct(self,sql):
        try:
            cursor.execute(sql)#通过游标执行查询语句
            db.commit()
        except Exception as e:
            print(e)
            db.rollback()
 
    def delete_connct(self,sql):
        try:
            cursor.execute(sql)#通过游标执行查询语句
            db.commit()
        except Exception as e:
            print(e)
            db.rollback()
 
    def insert_connct(self,sql,data):
        try:
            cursor.execute(sql, tuple(data.values()))#通过游标执行查询语句
            db.commit()
        except Exception as e:
            print(e)
            db.rollback()
 
 
 
if __name__ == '__main__':
    #创建实例对象
    connct_mysql=Connct_mysql('localhost','root','123456','stock',3306)
 
    #通过对象调用connct_db连接数据库方法,连接数据库,并设置全局变量
    connct_mysql.connct_db()
 
    #传入参数对数据修改
    connct_mysql.update_connct('update stock_all_codes set code= \'100000\' where code=\'sh000001\'')
 
    # 传入参数对表数据删除
    connct_mysql.delete_connct('delete from stock_all_codes where code=\'sh00002\'')
 
    # 传入参数对表数据插入数据
    # 多字段动态插入mysql数据库中,data,添加字段
    data = {
        'code': 'sh000001'
    }
    table = 'stock_all_codes'
    keys = ', '.join(data.keys())
    values = ', '.join(['%s'] * len(data))
    sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
    connct_mysql.insert_connct(sql,data)
 
    # 传入参数查询表数据
    connct_mysql.select_connct('select * from stock_all_codes')

  

posted @   A汉克先生  阅读(408)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示