python常用库之DBUtils(连接池方式连接数据库)

您所在的位置:网站首页 hive数据库连接池 python常用库之DBUtils(连接池方式连接数据库)

python常用库之DBUtils(连接池方式连接数据库)

2024-07-13 22:27| 来源: 网络整理| 查看: 265

文章目录 python常用库之DBUtils(连接池方式连接数据库)什么是DBUtils使用场景安装和使用示例高级用法

python常用库之DBUtils(连接池方式连接数据库) 什么是DBUtils

官网:https://webwareforpython.github.io/DBUtils/ 官方pip:https://pypi.org/search/?q=DBUtils

Dbutils是一套工具,可为数据库提供可靠,持久和汇总的连接,该连接可在各种多线程环境中使用。

该套件支持DB-API 2兼容的数据库接口和经典的PygresQL接口。

当前版本3.0.3的Dbutils支持Python版本3.6至3.11。

使用场景

如果您使用的是流行的对象关系映射器SQLObject 或SQLAlchemy之一,则不需要 DBUtils,因为它们带有自己的连接池。SQLObject 2 (SQL-API) 实际上是从 DBUtils 中借用了一些代码,将池化分离到一个单独的层中。

安装和使用 pip install DBUtils

本文安装测试的版本DBUtils-3.0.3

示例 import pymysql from dbutils.pooled_db import PooledDB # 定义连接参数 pool = PooledDB( creator=pymysql, maxconnections=6, mincached=2, maxcached=5, blocking=True, host='localhost', user='root', passwd='123456', db='mydb', port=3306, charset='utf8mb4' ) # 从连接池获取连接 conn = pool.connection() cursor = conn.cursor()

以 pymysql 为例子,先定义了连接池的配置参数,然后调用 pool.connection() 方法从连接池中获取一个连接,再使用这个连接创建一个游标对象 cursor。

# 执行 SQL 语句 sql = "SELECT * FROM students" cursor.execute(sql) result = cursor.fetchall() # 处理查询结果 for row in result: print(row) # 关闭游标和连接 cursor.close() conn.close()

使用后,我们需要显式地关闭游标和连接,以便将资源释放回连接池。

高级用法

有时您可能希望在 DBUtils 使用连接之前准备好连接,而仅使用正确的参数是不可能做到的。例如,pyodbc可能需要通过调用连接的setencoding()方法来配置连接。您可以通过将修改后的connect()函数作为 创建者(第一个参数)传递给PersistentDB或PooledDB来实现,如下所示:

from pyodbc import connect from dbutils.pooled_db import PooledDB def creator(): con = connect(...) con.setdecoding(...) 返回 con creator.dbapi = pyodbc db_pool = PooledDB(creator, mincached=5)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3