Python学习笔记10-Python MysqlHelper ,MySql 辅助类

自己写了一个MySql辅助类,有需要的拿走:

#--encoding:utf-8--
#
import MySQLdb

class MySQLHelper:
    myVersion=0.1
    def __init__(self,host,user,password,charset="utf8"):
        self.host=host
        self.user=user
        self.password=password
        self.charset=charset
        try:
            self.conn=MySQLdb.connect(host=self.host,user=self.user,passwd=self.password)
            self.conn.set_character_set(self.charset)
            self.cursor=self.conn.cursor()
        except MySQLdb.Error as e:
            print ('MySql Error : %d %s' %(e.args[0],e.args[1]))
    
    def setDB(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:
            rows=self.cursor.execute(sql)
            return rows;
        except MySQLdb.Error as e:
            print('MySql Error: %s SQL: %s'%(e,sql))
            
    def queryOnlyRow(self,sql):
        try:
            self.query(sql)
            result=self.cursor.fetchone()
            desc=self.cursor.description
            row={}
            for i in range(0,len(result)):
                row[desc[i][0]]=result[i]
            return row;
        except MySQLdb.Error as e:
            print('MySql Error: %s SQL: %s'%(e,sql))
    
    def queryAll(self,sql):
        try:
            self.query(sql)
            result=self.cursor.fetchall()
            desc=self.cursor.description
            rows=[]
            for cloumn in result:
                row={}
                for i in range(0,len(cloumn)):
                    row[desc[i][0]]=cloumn[i]
                rows.append(row)  
            return rows;
        except MySQLdb.Error as e:
            print('MySql Error: %s SQL: %s'%(e,sql))
    
    def insert(self,tableName,pData):
        try:
            newData={}
            for key in pData:
                newData[key]="'"+pData[key]+"'"
            key=','.join(newData.keys())
            value=','.join(newData.values())
            sql="insert into "+tableName+"("+key+") values("+value+")"
            self.query("set names 'utf8'")
            self.query(sql)
            self.commit()
        except MySQLdb.Error as e:
            self.conn.rollback()
            print('MySql Error: %s %s'%(e.args[0],e.args[1]))
        finally:
            self.close()
    
    def update(self,tableName,pData,whereData):
        try:
            newData=[]
            keys=pData.keys()
            for i in keys:
                item="%s=%s"%(i,"'"+pData[i]+"'")
                newData.append(item)
            items=','.join(newData)
            newData2=[]
            keys=whereData.keys()
            for i in keys:
                item="%s=%s"%(i,"'"+whereData[i]+"'")
                newData2.append(item)
            whereItems=" AND ".join(newData2)
            sql="update "+tableName+" set "+items+" where "+whereItems
            self.query("set names 'utf8'")
            self.query(sql)
            self.commit()
        except MySQLdb.Error as e:
            self.conn.rollback()
            print('MySql Error: %s %s'%(e.args[0],e.args[1]))
        finally:
            self.close()
    
    def getLastInsertRowId(self):
        return self.cursor.lastrowid
    
    def getRowCount(self):
        return self.cursor.rowcount
    
    def commit(self):
        self.conn.commit()
    
    def close(self):
        self.cursor.close()
        self.conn.close()
            
测试 代码:

#--encoding:utf-8--
#
from MySQLHelper import *

helper=MySQLHelper("localhost","root","")
helper.setDB("employee")
sql="select * from users"
rows=helper.queryAll(sql)
for row in rows:
    print row['id'],row['name'].decode("utf-8"),row['birthday']

# dataSource={"name":"汤姆克路斯".decode("gbk").encode("utf-8"),"birthday":"1992-03-12"}
# helper.insert("users", dataSource)
# print helper.getLastInsertRowId()


# pData={"birthday":"2005-05-05 18:32:23"}
# whereData={"name":"Jack Tang"}
# helper.update("users", pData, whereData)



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值