MySQLdb的操作类
win10/64位 + python3.6 (https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient)
#-*- coding=utf-8 -*- import MySQLdb from MySQLdb import cursors import sys class PMySQL(): #初始化,链接数据库并设置出字符集,并且获取游标 def __init__(self): try: self.db = MySQLdb.connect('localhost','root','123456','demodb',cursorclass=cursors.DictCursor,charset='utf8') if self.db : self.cursor = self.db.cursor() except Exception as e: print(e) sys.exit(1) #查询方法 def select(self,sql): data_list = [] try: self.cursor.execute(sql) self.db.commit() data = self.cursor.fetchall() if data is not None: for i in data: data_list.append(i) return data_list except Exception as e: return data_list #插入方法 def insert(self,sql): try: self.cursor.execute(sql) self.db.commit() return self.cursor.lastrowid except Exception as e: self.db.rollback() return 0 #更新方法 def update(self,sql): try: self.cursor.execute(sql) self.db.commit() return self.cursor.rowcount except Exception as e: self.db.rollback() return 0 #删除方法 def delete(self,sql): try: self.cursor.execute(sql) self.db.commit() return self.cursor.rowcount() except Exception as e: self.db.rollback() return 0 #批量插入 def insert_batch(self,table,data): try: if data: f = '' #顺序获取的字段名称 info = '' for d in data: list2 = [] list3 = [] for k,v in d.items(): list2.append(k) list3.append(v) f = ','.join(list2) info += str(tuple(list3))+',' datainfo = info.rstrip(',') sql = 'insert into {}({}) values {}'.format(table,f,datainfo) self.cursor.execute(sql) self.db.commit() return self.cursor.rowcount else: print('数据为空') sys.exit(1) except: self.db.rollback return 0 def __del__(self): try: if self.db: self.db.close() except Exception as e: print(e) sys.exit(1) if __name__ == '__main__': table = 'user' list1 = [{"name":"zhangsan","pid":0,"path":"0,"},{"name":"zhangsan","pid":0,"path":"0,"},{"name":"zhangsan","pid":0,"path":"0,"}] p = PMySQL() t = p.insert_batch(table,list1) print(t)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端