mport  pymysql

class MyDB():    def __init__(self, host="127.0.0.1", username="root", password="123456", port=3306, database="aais"):        '''类例化,处理一些连接操作'''        self.host = host        self.username = username        self.password = password        self.database = database        self.port = port        self.cur = None        self.con = None        # connect to mysql        try:            self.con = pymysql.connect(host=self.host, user=self.username, password=self.password,                                               port=self.port, database=self.database)

            self.cur = self.con.cursor()        except:            raise "DataBase connect error,please check the db config."

    def close(self):        '''结束查询和关闭连接'''        self.con.close()

    def create_table(self, sql_str):        '''创建数据表'''        try:            self.cur.execute(sql_str)        except Exception as e:            print(e)

    def query_formatrs(self, sql_str):        '''查询数据,返回一个列表,里面的每一行是一个字典,带字段名            cursor 为连接光标            sql_str为查询语句        '''        try:            self.cur.execute(sql_str)            rows = self.cur.fetchall()            r = []            for x in rows:                r.append(dict(zip(self.cur.column_names, x)))            return r        except:            return False

    def query(self, sql_str):        '''查询数据并返回             cursor 为连接光标             sql_str为查询语句        '''        try:            self.cur.execute(sql_str)            rows = self.cur.fetchall()            return rows        except:            return False

    def execute_update_insert(self, sql):        '''        插入或更新记录 成功返回最后的id        '''        self.cur.execute(sql)        self.con.commit()        return self.cur.lastrowid

if __name__ == "__main__":    mydb = MyDB()    # 创建表    mydb.create_table('create table user (id varchar(20) primary key, name varchar(20))')    # 插入数据    mydb.execute_update_insert("insert into user (id, name) values  ('1', 'Michael')")    # 查询数据表    mydb_new = MyDB()    results = mydb.query("SELECT * FROM login_user")    print(results)    for row in results:        productname = row[0]        supportname = row[1]        productinterface = row[2]        print("productname=%s,supportname=%s,productinterface=%s" % \              (productname, supportname, productinterface))

    list = mydb.query_formatrs("SELECT * FROM login_user")    for i in list:        print("记录号:%s   值:%s" % (list.index(i) + 1, i))    # 关闭数据库    mydb.close()

---------------------
作者:HFUT_qianyang
来源:CSDN
原文:https://blog.csdn.net/qy20115549/article/details/82972993
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/my-python-road/p/10924984.html

mysql.connector写了一个简单的mysql操作类:相关推荐

  1. mysql 消息队列_一个简单的 MySQL 批量事务消息队列

    基于 MySQL 的批量事务消息队列 消息队列本质上是一个存储介质,通常是链表结构,不同的进程或线程可以向消息队列中写入或读取消息.消息队列的使用场景有很多,比如异步处理任务.应用解耦.流量削锋等等. ...

  2. 如何用C++封装一个简单的数据流操作类(附源码),从而用于网络上的数据传输和解析?

    历史溯源 由于历史原因,我们目前看到的大部分的网络协议都是基于ASCII码这种纯文本方式,也就是基于字符串的命令行方式,比如HTTP.FTP.POP3.SMTP.Telnet等.早期操作系统UNIX( ...

  3. mysql 自己写数据库,自己写了一个简单的mysql数据库连接类

    直接上代码吧,有时间在维护下 class DB { private $host; //主机 private $username; //用户名 private $password; //密码 priva ...

  4. 缓存类java_用Java写一个简单的缓存操作类

    前言 使用缓存已经是开发中老生常谈的一件事了,常用专门处理缓存的工具比如Redis.MemCache等,但是有些时候可能需要一些简单的缓存处理,没必要用上这种专门的缓存工具,那么自己写一个缓存类最合适 ...

  5. python,一个简单的sqlite 操作类

    1,代码 import sqlite3class DB(object):Db='E:/test.db'# 执行sql函数#2018/2/9def Excute(self,sql):conn = sql ...

  6. mysql建立数据浏览器_一个简单的MySQL数据浏览器

    一个简单的MySQL数据浏览器 2021-01-21 16:17:28679 这个程序可以用来浏览MySQL中的数据,您可以稍做修改就可以做出很不错的MySQL浏览器. */ /* ?cmd=db ? ...

  7. mysql浏览器_一个简单的MySQL数据浏览器

    一个简单的MySQL数据浏览器 更新时间:2006年10月09日 00:00:00   作者: 这个程序可以用来浏览MySQL中的数据,您可以稍做修改就可以做出很不错的MySQL浏览器. */ /* ...

  8. mysql建立数据浏览器_一个简单的MySQL数据浏览器_php

    这个程序可以用来浏览mysql中的数据,您可以稍做修改就可以做出很不错的MySQL浏览器. */ /* ?cmd=db ?cmd=table&db={} http://www.gaodaima ...

  9. swoole mysql 连接数_用swoole简单实现MySQL连接池

    MySQL连接池 在传统的网站开发中,比如LNMP模式,由Nginx的master进程接收请求然后分给多个worker进程,每个worker进程再链接php-fpm的master进程,php-fpm再 ...

最新文章

  1. 伍六七带你学算法 入门篇-拼写单词
  2. PHP开发之thinkPHP分层设计
  3. centos7安装Samba服务
  4. linux界面版admin,linux下Nginx+Django Admin界面无样式问题解决方法
  5. GBDT是如何成为推荐系统顶级工具人的?
  6. okhttp3 模拟get、post(json参数传递,form表单提交)
  7. 167. Two Sum II - Input array is sorted两数之和
  8. 文件系统 文件时间记录在哪里_计算机系统基础:文件管理相关知识笔记
  9. 计算机二级Java上机环境安装与使用
  10. 学习Android studio 个人总结小经验
  11. AviSynth 模拟Mplayer的遮标滤镜(Delogo)
  12. 并行数据转换为串行数据的转换器
  13. 三国志战略版:Daniel_张角分析
  14. CreateFont比CreateFontIndirect好用啊~
  15. request to https://registry.npm.taobao.org/jsprim failed, reason: connect ETIMEDOUT 错误解决方案
  16. html 微信登陆,登录包含微信登录.html
  17. 数字签名(RSA签名、ElGamal签名、Schnorr签名、DSS、DSA、离散对数签名、特殊性质的签名算法、Chaum盲签名、Chaum-Antwerpen不可否认签名、群签名、MUO代理签名)
  18. UEditor富文本编辑器在图片不显示问题
  19. SRGAN模型——pytorch实现
  20. 数据库的查询优化方法

热门文章

  1. gitlab备份与还原:配置文件解读、定时备份、云备份
  2. Ansible相关工具介绍、实例演示
  3. Spark job stage task个数的计算方式
  4. JVM调优:GC标记清除回收算法
  5. Python3需要安装的MySQL库是mysqlclient
  6. 【Java面试题视频讲解】提取不重复的整数
  7. 为什么下拉框拉不下来_太气人了!《除暴》吴彦祖的浴巾为什么就是掉不下来?...
  8. mybatisplus查询今天的数据_MybatisPlus(CRUD)
  9. Intellij IDEA 2019 自动生成 serialVersionUID
  10. linux服务器问题总结