python封装一个工具类 ,对MySQL数据库增删改查,可多字段动态插入mysql数据库中
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')