python對mysql進行增刪改查

#!usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author:DOULIHANG
@file: db_operation.py
@time: 2020/07/01 
"""
import json

import pymysql

class DbOperation():
    def __init__(self, host, user, password, database, port=3306):
        """
        host:數據庫服務器地址
        user:登錄數據庫的用戶名
        password:登錄數據庫的密碼
        database:要連接的數據庫名稱
        port:連接數據庫的端口
        """
        self.host = host
        self.user = user
        self.password = password
        self.database = database
        self.port = port
        # 連接數據庫
        self.conn = pymysql.connect(host=self.host,
                                    user=self.user,
                                    password=self.password,
                                    database=self.database,
                                    port=self.port)

    def select(self, sql):
        try:
            # 使用cursor操作遊標
            cursor = self.conn.cursor()
            # 執行sql
            cursor.execute(sql)
            # 獲取所有記錄,返回格式爲元組
            results = cursor.fetchall()
            return results
        except:
            print("SQL語句: {} 無法查詢".format(sql))

    def update(self, sql):
        try:
            # 使用cursor操作遊標
            cursor = self.conn.cursor()
            # 執行sql
            cursor.execute(sql)
            # 提交到數據庫執行
            self.conn.commit()
        except:
            # 發生錯誤時回滾
            self.conn.rollback()

    def delete(self, sql):
        try:
            # 使用cursor操作遊標
            cursor = self.conn.cursor()
            # 執行sql
            cursor.execute(sql)
            # 提交到數據庫執行
            self.conn.commit()
        except:
            # 發生錯誤時回滾
            self.conn.rollback()

    def insert(self, sql):
        try:
            # 使用cursor操作遊標
            cursor = self.conn.cursor()
            # 執行sql
            cursor.execute(sql)
            # 提交到數據庫執行
            self.conn.commit()
        except:
            # 發生錯誤時回滾
            self.conn.rollback()

    def run_stored_procedure(self, args):
        """
        調用存儲過程
        """
        try:
            cur = self.conn.cursor()
            # 調用存儲過程,QSP_Clean_Data爲存儲過程名稱,args爲存儲過程要傳入的參數,格式爲元組
            cur.callproc('QSP_Clean_Data', args)
            self.conn.commit()
        except:
            # 發生錯誤時回滾
            self.conn.rollback()

    def close(self):
        # 關閉數據庫連接
        self.conn.close()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章