python連接mysql數據庫(用with關鍵字)


#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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM