python连接oralce、mysql数据库整合

为方便数据库的链接将oracle、mysql数据库进行了整合,特别注意oracle数据库需要安转oracle的客户端,并设置环境变量才可用!

# -*- coding:utf-8 -*-
import pyodbc
import pymysql
import cx_Oracle
from recordlog import recordlog

class DatabaseTool(object):
    def __init__(self, host, port, username, password, dbname):
        # 数据库IP地址
        self.host = host
        # 数据库端口
        self.port = port
        # 数据库用户名
        self.username = username
        # 数据库密码
        self.password = password
        # 数据库实例名
        self.dbname = dbname
        rdlog = recordlog()
        self.s_log, self.f_log = rdlog.return_logers()
        self.f_log.debug("数据库配置信息!")
        self.f_log.debug("数据库IP地址: " + self.host)
        self.f_log.debug("数据库端口: " + self.port)
        self.f_log.debug("数据库用户名: " + self.username)
        self.f_log.debug("数据库密码: " + self.password)
        self.f_log.debug("数据库实例名: " + self.dbname)

    # MySQL连接方法
    def mysqlConnect(self):
        try:
            # 赋值连接
            self.f_log.info("MySQL Connection start!")
            self.connection = pymysql.connect(host=self.host, port=self.port, user=self.username, password=self.password, db=self.dbname, charset='gbk', cursorclass=pymysql.cursors.DictCursor)
        except Exception as e:
            self.f_log.info("MySQL Connection Fail")
            self.f_log.error(str(e))
            return False
        else:
            self.f_log.info('MySQL Connection Success')
            # 赋值游标
            self.cursor = self.connection.cursor()
            return True

    # Oracle连接方法
    def oracleConnect(self):
        # 拼接连接字符串
        connString = self.username + '/' + self.password + '@' + self.host + ':' + self.port + '/' + self.dbname
        try:
            # 赋值连接
            self.f_log.info("Oracle Connection start!")
            self.connection=cx_Oracle.connect(connString)
        except Exception as e:
            self.f_log.info('Oracle Connection Fail')
            self.f_log.error(str(e))
            return False
        else:
            self.f_log.info('Oracle Connection Success')
            # 赋值游标
            self.cursor = self.connection.cursor()
            return True

    # SqlServer连接方法
    def sqlServerConnect(self):
        # 拼接IP和端口
        server = self.host + ',' + self.port
        # 定义连接字符串
        connString = 'DRIVER={SQL Server Native Client 10.0};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s'
        # 替换关键参数
        connString = connString%(server, self.dbname, self.username, self.password)
        try:
            # 赋值连接
            self.f_log.info('sqlServer Connection start')
            self.connection = pyodbc.connect(connString)
        except Exception as e:
            self.f_log.info('sqlServer Connection Fail')
            self.f_log.error(str(e))
            return False
        else:
            self.f_log.info('sqlServer Connection Success')
            # 赋值游标
            self.cursor = self.connection.cursor()
            return True

    # 关闭连接
    def close_Database(self):
        self.f_log.info('DataBase Connection Closed')
        self.connection.close()

    # 获取一条数据
    def sql_One_DQL(self, sql):
        try:
            self.f_log.info("开始查询数据!查询sql:" + sql)
            self.cursor.execute(sql)
            # 获取一条数据
            result = self.cursor.fetchone()
            self.f_log.info("查询数据成功!")
            self.f_log.debug(result)
        except Exception as e:
            self.f_log.debug("获取一条数据失败!")
            self.f_log.debug("报错:" + str(e))
            return False
        # 返回数据
        return result

    # 获取所有数据
    def sql_All_DQL(self, sql):
        # 执行sql
        try:
            self.f_log.info("开始查询数据!查询sql:" + sql)
            self.cursor.execute(sql)
            # 获取一条数据
            result = self.cursor.fetchall()
            self.f_log.info("查询数据成功!")
            self.f_log.debug(result)
        except Exception as e:
            self.f_log.debug("获取全部数据失败!")
            self.f_log.debug("报错:" + str(e))
            return False
        # 返回数据
        return result

    # 增删改
    def sql_DML(self, sql):
        # 执行sql
        self.cursor.execute(sql)
        # 提交
        self.connection.commit()
        self.f_log.info('Executed Success')

    # 析构函数
    def __del__(self):
        # 删除对象
        class_name = self.__class__.__name__
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值