# -*- coding:utf-8 -*-

import MySQLdb

import time

'''

· MySQL 操作类

· V1.0

'''

class MySQLClass(object):

def __init__(self,host,user,password,charset="utf8"):

super(MySQLClass, self).__init__()

self.host=host

self.user=user

self.password=password

self.port=3307 # 我这里MySql端口是3307,默认3306

self.charset=charset

try:

self.conn=MySQLdb.connect(host=self.host,user=self.user,passwd=self.password,port=self.port)

self.conn.set_character_set(self.charset)

self.cur=self.conn.cursor()

except MySQLdb.Error as e:

self.printError(e,'')

def getTime(self):

return time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))

def printError(self,e,sql):

print("{0} MySQl Error {1}: {2}".format(self.getTime(),e.args[0],e.args[1]))

print(sql)

def setdb(self,db):

try:

self.conn.select_db(db)

except MySQLdb.Error as e:

self.printError(e,'')

#新增

def insert(self,tablename,DicData):

try:

arrParam=[]

arrValue=[]

for key in DicData:

arrParam.append('%s')

arrValue.append(DicData[key])

strfield='`{0}`'.format('`,`'.join(DicData.keys()))

strParam='values({0})'.format(','.join(arrParam))

sql='insert into {0}({1}) {2};'.format(tablename,strfield,strParam)

self.cur.execute(sql,tuple(arrValue)) # 单调新增

self.conn.commit()

except MySQLdb.Error as e:

self.printError(e,sql)

#self.conn.close()

#批量新增

def insertBatch(self,tablename,arrFiled,arrTupleValue):

try:

strfield = '`{0}`'.format('`,`'.join(arrFiled))

arrParam=[]

for x in arrFiled:

arrParam.append('%s')

strParam = 'values({0})'.format(','.join(arrParam))

sql = 'insert into {0}({1}) {2};'.format(tablename, strfield, strParam)

self.cur.executemany(sql,tuple(arrTupleValue)) #many 多条新增

self.conn.commit()

except MySQLdb.Error as e:

self.printError(e,'')

#self.conn.close()

#更新语句

def update(self,sql):

try:

self.cur.execute(sql)

self.conn.commit()

except MySQLdb.Error as e:

self.conn.rollback()

self.printError(e,sql)

#self.conn.close()

#查询单个字段 返回List

def executeList(self,sql):

try:

result=[]

self.cur.execute(sql)

ds=self.cur.fetchall()

for i,row in enumerate(ds):

result.append(str(row[0]))

return result

except MySQLdb.Error as e:

self.printError(e,sql)

db=MySQLClass('127.0.0.1','root','123456')

db.setdb('test')

# arr=db.executeList('SELECT DISTINCT skuid from commodity')

# for x in arr:

# print(x)

# table=db.insert('commodity',{'title':'10'})

# db.conn.commit()

# arrTr={'title':'1'}

# if 'titl1e' in arrTr:

# print (1)

# else:

# print (0)

arrFiled = ['name', 'age']

arrValue=['1','2']

arrValueS=[]

arrValueS.append([1,'1'])

db.insertBatch('test',arrFiled,arrValueS)

python mysql类里_Python MySql 操作类相关推荐

  1. mysql 数据库操作类_【数据库操作类】10个php操作数据库类下载

    数据库(Database)操作是在开发过程中重要的组成部分,熟练掌握数据库的操作是开发人员必备的武器.PHP中文网为大家提供了各种封装好的php数据库操作类库,供大家下载和学习. 相关mysql视频教 ...

  2. python里面装数据库_python 安装操作 MySQL 数据库.

    以ubuntu和mysql为例 检查自己的机器上面有没有安装数据库 1 xpower@xpower-CW65S:~$ sudo service mysql start2 [sudo] xpower 的 ...

  3. java mysql 操作类_Java 数据库简单操作类

    1 packagecom.latiny.db;2 3 import java.io.*;4 import java.sql.*;5 importjava.util.ArrayList;6 import ...

  4. .net mysql操作类_ASP.NET数据库操作类实例

    本文实例讲述了ASP.NET数据库操作类.分享给大家供大家参考,具体如下: using System; using System.Data; using System.Configuration; u ...

  5. mysql和python先学哪个_Python数据库操作 初识mysql和mysql基本操作#学习猿地

    # 3.认识和操作一下mysql的基本命令 #### 登录mysql,在终端输入以下命令,进行登录 `mysql -u root -p` ```sql MacBook-Pro:~ yc$ mysql ...

  6. python新式类和经典类区别_Python中新式类和经典类的区别,钻石继承

    1)首先,写法不一样: class A: pass class B(object): 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. 3)新式类更符合OOP编程思想,统一了pyt ...

  7. python批量查询数据库_Python + MySQL 批量查询百度收录

    做SEO的同学,经常会遇到几百或几千个站点,然后对于收录情况去做分析的情况 那么多余常用的一些工具在面对几千个站点需要去做收录分析的时候,那么就显得不是很合适. 在此特意分享给大家一个批量查询百度收录 ...

  8. python做数据库管理系统_python+mysql做一个图书管理系统?

    开发一个图书管理系统,首先需要对此项目进行一个简单的需求分析: 主要功能包括:图书信息 图书分类 用户信息 用户借阅统计 管理员 管理员权限 接下来可以进行数据库的设计,在这里我提供一个简单的数据库表 ...

  9. python mysql批量查询_Python + MySQL 批量查询百度收录

    做SEO的同学,经常会遇到几百或几千个站点,然后对于收录情况去做分析的情况 那么多余常用的一些工具在面对几千个站点需要去做收录分析的时候,那么就显得不是很合适. 在此特意分享给大家一个批量查询百度收录 ...

最新文章

  1. 一步步构建大型网站架构
  2. 程序运行时,内存占用查看
  3. windows8.1如何分盘
  4. Google、Facebook、GitHub、Babel核心成员齐聚,第13届D2前端技术论坛正式启动
  5. jcg q8 固件_JCG学院开设了Java设计模式课程!
  6. QT Windows下生成动态链接库
  7. 训练集、验证集和测试集的意义
  8. linux僵尸进程理解,聊聊Linux系统中的僵尸进程
  9. Python complex()
  10. android 横竖屏切换时候activity的生命周期,横竖屏切换时候Activity的生命周期
  11. MySQL使用内置函数来进行模糊搜索locate()与like的不同
  12. dynamips虚拟服务:找不到指定设备
  13. Python爬虫进阶七之设置ADSL拨号服务器代理
  14. win10用计算机分区,win10怎么分区,详细教您win10怎么对磁盘进行分区
  15. kali破解wifi 密码(仅供学习)
  16. 学画画软件app推荐_绘画APP推荐|很全的学画画的APP推荐
  17. MFC实现窗口透明,并显示一张透明PNG图片
  18. 关于论文图的排版(origin)
  19. 简单了解一下LCD屏工作原理
  20. 如何用viso画波浪线、以及带箭头的波浪线。

热门文章

  1. 某33岁国企程序员求助:目前税后60+,工作975,拿到蚂蚁p7offer,3.8k,6200期权,有必要去镀金吗?...
  2. 高频面试题:秒杀场景设计
  3. 编码之路,与君共勉。
  4. 程序员吐槽:不和同事一起吃午饭,被领导批了!网友戏称:以后拉屎也要和同事一起,打成一片!...
  5. 项目管理如何有效进行
  6. PE里在计算机本地磁盘大小,没有U盘如何在电脑本地磁盘制作一个PE系统
  7. 关于技术方案与架构宣讲的思考
  8. 作为一个新人,怎样学习嵌入式Linux?
  9. /* * 编程第三题(20分) 打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。(例153=1*1*1+3*3*3+5*5*5) */
  10. VMware Workstation下新建用户及Linux常用操作命令