以后再也不用每次都重新写啦!

import MySQLdb
OperationalError = MySQLdb.OperationalError
class MySQL: def __init__(self,host,user,password,port=3306,charset="utf8"): self.host=host self.port=portself.user=user self.password=password self.charset=charset try: self.conn=MySQLdb.connect(host=self.host,port=self.port,user=self.user,passwd=self.password)self.conn.autocommit(False)self.conn.set_character_set(self.charset) self.cur=self.conn.cursor() except MySQLdb.Error as e: print("Mysql Error %d: %s" % (e.args[0], e.args[1])) def __del__(self):self.close()def selectDb(self,db): try: self.conn.select_db(db) except MySQLdb.Error as e: print("Mysql Error %d: %s" % (e.args[0], e.args[1])) def query(self,sql): try: n=self.cur.execute(sql) return n except MySQLdb.Error as e: print("Mysql Error:%s\nSQL:%s" %(e,sql)) def fetchRow(self): result = self.cur.fetchone() return result def fetchAll(self): result=self.cur.fetchall() desc =self.cur.description d = [] for inv in result: _d = {} for i in range(0,len(inv)): _d[desc[i][0]] = str(inv[i]) d.append(_d) return d def insert(self,table_name,data): columns=data.keys()_prefix="".join(['INSERT INTO `',table_name,'`'])_fields=",".join(["".join(['`',column,'`']) for column in columns])_values=",".join(["%s" for i in range(len(columns))])_sql="".join([_prefix,"(",_fields,") VALUES (",_values,")"])_params=[data[key] for key in columns]return self.cur.execute(_sql,tuple(_params)) def update(self,tbname,data,condition):_fields=[]_prefix="".join(['UPDATE `',tbname,'`','SET'])for key in data.keys():_fields.append("%s = %s" % (key,data[key]))_sql="".join([_prefix ,_fields, "WHERE", condition ])return self.cur.execute(_sql)def delete(self,tbname,condition):_prefix="".join(['DELETE FROM  `',tbname,'`','WHERE'])_sql="".join([_prefix,condition])  return self.cur.execute(_sql)def getLastInsertId(self): return self.cur.lastrowid def rowcount(self): return self.cur.rowcount def commit(self): self.conn.commit() def rollback(self):self.conn.rollback()def close(self): self.cur.close() self.conn.close()if __name__=='__main__':n=MySQL('127.0.0.1','root','123456',3306)n.selectDb('test')tbname='map'a=({'id':3,'x':3,'y':3},{'id':4,'x':4,'y':4},{'id':5,'x':5,'y':5})for d in a:n.insert(tbname,d)n.commit()

一个重量级的MySQL-Python 封装类:facebook python mysql

转载于:https://blog.51cto.com/weipengfei/1269034

Python 封装MySQL类相关推荐

  1. Python封装MySQL数据库操作(pymysql)

    Python封装MySQL数据库操作(pymysql) # 连接MySQL class DbManager(object):# 构造函数def __init__(self):self.conn = N ...

  2. python封装线程类(启动、终止、查看线程状态)

    文章目录 一.简单说明 二.实现步骤 三.测试 一.简单说明 将启动.终止和查看线程状态的方法封装成类 声明时传入要启动的方法 通过 start.stop 和 state 执行启动.终止 和 查看状态 ...

  3. python封装vba_VBA类模块封装

    VBA类模块封装 2018-09-26 "封装宏------------------------- Sub 表达式变公式() Dim g As New 功能库 g.公式变数值 Range(& ...

  4. python封装工具类多个项目使用_【arcpy项目实战】将多个点两两生成的最短路径pyhon代码封装入script中...

    import os import arcpy arcpy.env.workspace=arcpy.GetParameterAsText(0)#选取环境 cost =arcpy.GetParameter ...

  5. 分享一个python 处理mysql的简易封装模块---directsql

    directsql​ 一个简单的使用python操作mysql的工具,提供了一些类似sql语法的方法,最终拼接成sql.可以很好地处理一些常见场景,不依赖orm 的同时避免手写大量sql,只需要数据是 ...

  6. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button的command/Label/PhotoImage/封装为类)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button的command/Label/PhotoImage/封装为类) 目录 tkinter应用案例五 ...

  7. python如何对一个属性或方法进行封装_python 类、对象、方法、属性

    在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) ...

  8. 【博主推荐】Python 基于Xlwings、Openpyxl自己重新封装Python操作Excel类

    1.简介:Python操作Excel,常用Xlwings.Openpyxl类,由于其知识琐碎,使用起来不太方便,因此自己把常用用法重新封装一个操作类. 2.应用场景:使用Python操作Excel,读 ...

  9. 数据库MySQL基础---JDBC开发步骤--JDBC封装工具类--PreparedStatement实现CRUD操作

    JDBC简介 1.JDBC定义Java数据库连接(Java Database Connectivity,简称JDBC):是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询 ...

最新文章

  1. 用友ERP供应链模块(一)----库存盘点
  2. MyBatis入门示例
  3. redis 配置文件 append only file(aof)部分---数据持久化
  4. python函数(二)
  5. leetcode13
  6. .net core之ACG小站爬虫(一)
  7. Java SSM篇2——框架的基本认识
  8. 深入理解java:2.3.4. 并发编程concurrent包 之容器ConcurrentLinkedQueue(非阻塞的并发队列---循环CAS)...
  9. Keil 5 安装教程
  10. vue项目引入sass
  11. 推荐一款MD神器吧:重度MD用户必备神器
  12. VS2008 SP1开发环境补丁列表
  13. 百度瓦片地图在线下载以及合成
  14. 百度程序员删库跑路被逮捕!
  15. 【Nape教程】Nape刚体碰撞检测
  16. iOS模拟器 定位失败或无法定位
  17. Mongodb副本集部署(Centos7)
  18. python循环输入错误重新输入_python输入三次错误密码,用户锁定问题
  19. 微商软文标题怎么写才吸引人?
  20. 金仓数据库KingbaseES行列转换

热门文章

  1. c语言 二进制输出_程序员入门C语言,需要掌握的4个基础知识
  2. 动态二级下拉菜单html,js实现简洁大方的二级下拉菜单效果代码
  3. python语句first、*middles_Python语句print('%d%%%d'%(3/2, 3%2))的运行结果是( 1 )。_学小易找答案...
  4. vue中 .sync 修饰符 个人理解
  5. matlab/simulink常见问题汇总
  6. codeigniter 禁止ip登录_「开源资讯」baigo SSO v4.0 beta-3 发布,单点登录系统
  7. iOSAPP配置多环境
  8. mysql性能分析工具profiling_Mysql系列(十)—— 性能分析工具profiling
  9. 【自动驾驶】Eigen:矩阵Matrix的使用
  10. 【深度学习】LeNet-5、AlexNet、VGG16、GoogLeNet、ResNet