數據庫的操作封裝成類
把數據庫操作寫成函數:每次都得連接數據庫一次連接一次提交,重復操作浪費時間
把數據庫操作寫成類:一次連接可以多次提交,最佳重復操作時不需要關閉數據庫
import pymysql
class SQLManager(object):
def __init__(self): #實例化后自動執行此函數
self.connect()
def connect(self): #此時進入數據庫,游標也已經就緒
self.conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="123", db="day66", charset="utf8")
self.cursor = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
def get_list(self, sql, args=None):
self.cursor.execute(sql, args)
result = self.cursor.fetchall()
return result
def get_one(self, sql, args=None):
self.cursor.execute(sql, args)
result = self.cursor.fetchone()
return result
def run(self, sql, args=None):
self.cursor.execute(sql, args)
self.conn.commit()
def create(self, sql, args=None):
self.cursor.execute(sql, args)
self.conn.commit()
ret = self.cursor.lastrowid # 取到剛才創建的記錄的ID
return ret
def m_create(self, sql, args=None):
# self.cursor.executemany(sql, [(1, 36), (1, 38), (1, 36)])
self.cursor.executemany(sql, args) # 批量執行
self.conn.commit()
ret = self.cursor.lastrowid # 取到剛才創建的記錄的ID
return ret
def close(self):
self.cursor.close()
self.conn.close()