python 使用连接池 创建数据库类
时间: 2024-01-18 14:49:41 浏览: 126
利用连接池连接数据库
以下是一个使用连接池创建数据库类的 Python 代码示例:
```
import pymysql
from pymysql import cursors
from DBUtils.PooledDB import PooledDB
class Database:
def __init__(self):
self.pool = PooledDB(
creator=pymysql,
maxconnections=5,
host='localhost',
user='root',
password='password',
database='mydb',
cursorclass=cursors.DictCursor
)
def execute_query(self, sql):
conn = self.pool.connection()
cursor = conn.cursor()
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
conn.close()
return result
def execute_update(self, sql):
conn = self.pool.connection()
cursor = conn.cursor()
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
```
在上面的代码中,我们使用了 `DBUtils` 模块中的 `PooledDB` 类来创建连接池。在 `__init__` 方法中,我们传入了连接池的一些参数,包括 `maxconnections` 表示连接池中最大连接数,`host`、`user`、`password`、`database` 表示数据库连接信息,`cursorclass` 表示游标的类型。
接下来,我们定义了两个方法 `execute_query` 和 `execute_update`,它们分别用于执行查询和更新操作。在这两个方法中,我们从连接池中获取一个连接,使用这个连接创建游标并执行 SQL 语句,最后关闭游标和连接,然后返回查询结果或提交更改。
使用这个数据库类,我们可以像下面这样执行 SQL 语句:
```
db = Database()
result = db.execute_query('SELECT * FROM mytable')
db.execute_update('INSERT INTO mytable (name, age) VALUES ("Alice", 25)')
```
这样就可以通过连接池来管理数据库连接,避免了频繁地创建和关闭连接,提高了数据库的性能。
阅读全文