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内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。
我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复