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