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

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐