#import mysql.connector import pymysql #mydb = mysql.connector.connect( # host = "localhost", # user = "root", # passwd = "123456", # database = "mysql") # #mycursor = mydb.cursor() #mycursor.execute("show tables") #for i in mycursor: # print(i) class DB(object): def __init__(self, host="localhost", port=3306, db="", user="root", passwd="123456", charset="utf8"): # 創建數據庫連接 self.dbconn = pymysql.connect(host=host, port=port, db=db, user=user, passwd=passwd, charset=charset) # 創建字典型游標(返回的數據是字典類型) self.dbcur = self.dbconn.cursor(cursor = pymysql.cursors.DictCursor) # __enter__() 和 __exit__() 是with關鍵字調用的必須方法 # with本質上就是調用對象的enter和exit方法 def __enter__(self): # 返回游標 return self.dbcur def __exit__(self, exc_type, exc_value, exc_trace): # 提交事務 self.dbconn.commit() # 關閉游標 self.dbcur.close() # 關閉數據庫連接 self.dbconn.close() if __name__ == "__main__": with DB(db="test") as db: # db.execute("show databases") db.execute("select count(*) from test1") print(db) for i in db: print(i)