1. 程式人生 > 資料庫 >pymysql的簡單封裝程式碼例項

pymysql的簡單封裝程式碼例項

這篇文章主要介紹了pymysql的簡單封裝程式碼例項,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

#coding=utf-8 
#!/usr/bin/python

import pymysql


class MYSQL:
  """
  對pymysql的簡單封裝
  """
  def __init__(self,host,user,pwd,db):
    self.host = host
    self.user = user
    self.pwd = pwd
    self.db = db

  def __GetConnect(self):
    """
    得到連線資訊
    返回: conn.cursor()
    """
    if not self.db:
      raise(NameError,"沒有設定資料庫資訊")
    self.conn = pymysql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
    cur = self.conn.cursor()
    if not cur:
      raise(NameError,"連線資料庫失敗")
    else:
      return cur

  def ExecQuery(self,sql):
    """
    執行查詢語句
    返回的是一個包含tuple的list,list的元素是記錄行,tuple的元素是每行記錄的欄位

    呼叫示例:
        ms = MYSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")
        resList = ms.ExecQuery("SELECT id,NickName FROM WeiBoUser")
        for (id,NickName) in resList:
          print str(id),NickName
    """
    cur = self.__GetConnect()
    cur.execute(sql)
    resList = cur.fetchall()

    #查詢完畢後必須關閉連線
    self.conn.close()
    return resList

  def ExecNonQuery(self,sql):
    """
    執行非查詢語句

    呼叫示例:
      cur = self.__GetConnect()
      cur.execute(sql)
      self.conn.commit()
      self.conn.close()
    """
    cur = self.__GetConnect()
    cur.execute(sql)
    self.conn.commit()
    self.conn.close()

def main():

  mysql = MYSQL(host="192.168.163.36",user="wisdomhr",pwd="wisdomhr",db="WISDOMHR")
  resList = mysql.ExecQuery("SELECT CITY FROM RES_SCHOOL")
  for inst in resList:
    print(inst)
if __name__ == '__main__':
  main()

用法如下:

#!/usr/bin/python
#version 3.4
import wispymysql
mysql = wispymysql.MYSQL(host="192.168.163.36",db="WISDOMHR")
selectsql = "SELECT ID,CITY FROM RES_SCHOOL WHERE CITY LIKE '%\r\n%'"
result = mysql.ExecQuery(selectsql)

for (dbid,city) in result:
  rightcity = city.replace('\r\n','')
  updatesql= "UPDATE RES_SCHOOL SET CITY = '" + rightcity + "' WHERE ID = " + str(dbid)
  print(updatesql)
  mysql.ExecNonQuery(updatesql)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。