python 3 MySQLデータベースへの接続

3282 ワード

環境:python 3.6.1+mysql 5.1
Python 3はpymysqlモジュールでデータベースをリンクすることをサポートします
1、pymysqlインストール
Windowsの下:
pip install pymysql
ダイレクトマウント
公式ドキュメント:
http://www.pymssql.org/en/stable/
2、実現構想
C++でデータベースにアクセスする方法とほぼ同じです
A.pymysqlモジュールの方法で、データベースと接続する
B.SQL文の作成
C.接続された返却されたデータベースオブジェクトを通して、対応する方法を呼び出してSQL文を実行する
D.データベースから返されたデータ(つまりキャッシュ領域のデータ)を読み取る
E.該当する返却データに対する操作
F.データベースオブジェクトを閉じ、データベースを閉じる
3、クエリ文実行フローチャート:
python3连接MySQL数据库_第1张图片
4、添削改文実行フローチャート:
python3连接MySQL数据库_第2张图片
5、取引:データベースのプログラム実行ユニットへのアクセスと更新
-アトミック:トランザクションに含まれるアクションは実行するか、実行しないか(バンドルは分割できません)
-コンシステンシ:トランザクションは、データベースをコンシステンシ状態から別のコンシステンシ状態に変更する必要があります.
-独立性:1つのトランザクションの実行を他のトランザクションに干渉させない
-永続性:トランザクションがコミットされると、データベースへの変更は永続的です.
6、添削改ざん機能実現コード:
#  pymysql  
import  pymysql

class MYSQL:
    #      ,       
    def __init__(self,host,user,pwd,dbname):
        self.host   = host
        self.user   = user
        self.pwd    = pwd
        self.dbname = dbname

    #          cursor
    #     :           
    def getCursor(self):

        #        
        self.db = pymysql.connect(self.host,self.user,self.pwd,self.dbname)

        #       
        cur = self.db.cursor()

        #   
        return cur

    #     
    def queryOperation(self,sql):

        #           
        cur = self.getCursor()

        #   SQL  
        cur.execute(sql)

        #        
        row = cur.rowcount

        #       
        # fetch*
        # all     ,one       ,many(size), size 
        dataList = cur.fetchall()

        #       
        cur.close()

        #     
        self.db.close()

        #        
        return dataList,row

    #     
    def deleteOperation(self,sql):

        #       
        cur = self.getCursor()
        try:
            #   SQL  
            cur.execute(sql)

            #       
            self.db.commit()

        except Exception as e:
            print(e)

            #      
            self.db.rollback()

        #       
        cur.close()

        #        
        self.db.close()

    #     
    def updateOperation(self,sql):
        cur = self.getCursor()
        try:
            cur.execute(sql)
            self.db.commit()
        except Exception as e:
            print(e)
            self.db.rollback()

        cur.close()
        self.db.close()

    #     
    def insertOperation(self,sql):

        cur = self.getCursor()
        try:
            cur.execute(sql)
            self.db.commit()
        except Exception as e:
            print(e)
            self.db.rollback()

        cur.close()
        self.db.close()

更新を続けていますが、間違いがあれば、ご指摘ください.