<1>封装多数据库连接
python常用祖传代码 " />

在实际应用场景中,一个Python程序可能需要连接多个数据库来处理数据,比如连接MySQL、MongoDB、Oracle等不同的数据库。为了方便代码复用和维护,我们可以将多个数据库连接相关的代码封装成一个模块或类,以便于在整个项目中使用。

下面是一个简单的Python代码示例,用于封装多个数据库连接。

```python

import pymysql

import pymongo

import cx_Oracle

class Database(object):

def __init__(self, dbtype, host, port, username, password, dbname):

self.dbtype = dbtype

self.host = host

self.port = port

self.username = username

self.password = password

self.dbname = dbname

self.conn = None

def connect(self):

if self.dbtype == 'mysql':

self.conn = pymysql.connect(host=self.host,

port=self.port,

user=self.username,

password=self.password,

db=self.dbname,

charset='utf8mb4',

cursorclass=pymysql.cursors.DictCursor)

elif self.dbtype == 'mongodb':

self.conn = pymongo.MongoClient(host=self.host,

port=self.port)

elif self.dbtype == 'oracle':

dsn_tns = cx_Oracle.makedsn(self.host, self.port, service_name=self.dbname)

self.conn = cx_Oracle.connect(user=self.username, password=self.password, dsn=dsn_tns)

def close(self):

if self.conn is not None:

self.conn.close()

self.conn = None

def execute(self, sql, params=None):

result = None

cursor = self.conn.cursor()

try:

cursor.execute(sql, params)

result = cursor.fetchall()

finally:

cursor.close()

return result

```

上述代码中,我们定义了一个Database类,用于连接和操作多个数据库。其中,初始化方法__init__()接收6个参数,分别为数据库类型、主机名、端口号、用户名、密码和数据库名。connect()方法用于连接数据库,具体实现根据不同的数据库类型调用相应的库连接。close()方法用于关闭数据库连接。execute()方法用于执行SQL语句。

使用时,只需按照以下步骤来连接数据库:

```python

# 创建一个MySQL数据库实例

mysql_db = Database('mysql', 'localhost', 3306, 'root', 'password', 'test')

# 连接MySQL数据库

mysql_db.connect()

# 执行SQL语句

sql = "SELECT * FROM users WHERE name=%s"

params = ("David",)

result = mysql_db.execute(sql, params)

# 关闭MySQL数据库连接

mysql_db.close()

```

同样的,我们也可以用上述代码连接MongoDB和Oracle数据库:

```python

#创建一个MongoDB数据库实例

mongodb_db = Database('mongodb', 'localhost', 27017, 'root', 'password', 'test')

#连接MongoDB数据库

mongodb_db.connect()

#查询MongoDB的数据

collection = mongodb_db.conn.get_collection('collection_name')

result = collection.find({'name': 'David'})

#关闭MongoDB数据库连接

mongodb_db.close()

#创建一个Oracle数据库实例

oracle_db = Database('oracle', 'localhost', 1521, 'root', 'password', 'test')

#连接Oracle数据库

oracle_db.connect()

#查询Oracle的数据

sql = "SELECT * FROM users WHERE name=:name"

params = {'name': 'David'}

result = oracle_db.execute(sql, params)

#关闭Oracle数据库连接

oracle_db.close()

```

上述代码简单易懂,通过封装多个数据库连接相关的代码,使得我们可以方便地连接和操作多个数据库,提高了代码复用和维护性。

壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(36) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部