Python实现Mysql数据库连接池

本文介绍了Python中使用MySQLdb和DBUtils库创建数据库连接池的方法,以提高数据库访问效率和资源复用。通过示例代码展示了如何创建MysqlConn模块,包含连接池对象和查询、插入等操作。
摘要由CSDN通过智能技术生成

python连接Mysql数据库:

Python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接MySQL数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问数量达到一定数量时,对mysql的性能会产生较大的影响。因此,实际使用中,通常会使用数据库的连接池技术,来访问数据库达到资源复用的目的。

数据库连接池

python的数据库连接池包 DBUtils:

DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。DBUtils来自Webware for Python。

DBUtils提供两种外部接口:
  • * PersistentDB :提供线程专用的数据库连接,并自动管理连接。
  • * PooledDB :提供线程间可共享的数据库连接,并自动管理连接。

下载地址:DBUtils   下载解压后,使用python setup.py install 命令进行安装

下面利用MySQLdb和DBUtils建立自己的mysql数据库连接池工具包

在工程目录下新建package命名为:dbConnecttion,并新建module命名为MySqlConn,下面是MySqlConn.py,该模块创建Mysql的连接池对象,并创建了如查询/插入等通用的操作方法。该部分代码实现如下:

[python]  view plain   copy
  print ?
  1. # -*- coding: UTF-8 -*-  
  2. """ 
  3. Created on 2016年5月7日 
  4.  
  5. @author: baocheng 
  6. 1、执行带参数的SQL时,请先用sql语句指定需要输入的条件列表,然后再用tuple/list进行条件批配 
  7. 2、在格式SQL中不需要使用引号指定数据类型,系统会根据输入参数自动识别 
  8. 3、在输入的值中不需要使用转意函数,系统会自动处理 
  9. """  
  10.    
  11. import MySQLdb  
  12. from MySQLdb.cursors import DictCursor  
  13. from DBUtils.PooledDB import PooledDB  
  14. #from PooledDB import PooledDB  
  15. import Config  
  16.   
  17. """ 
  18. Config是一些数据库的配置文件 
  19. """  
  20.    
  21. class Mysql(object):  
  22.     """ 
  23.     MYSQL数据库对象,负责产生数据库连接 , 此类中的连接采用连接池实现获取连接对象:conn = Mysql.getConn() 
  24.             释放连接对象;conn.close()或del conn 
  25.     """  
  26.     #连接池对象  
  27.     __pool = None  
  28.     def __init__(self):  
  29.         #数据库构造函数,从连接池中取出连接,并生成操作游标  
  30.         self._conn = Mysql.__getConn()  
  31.         self._cursor = self._conn.cursor()  
  32.   
  33.     @staticmethod  
  34.     def __getConn():  
  35.         """ 
  36.         @summary: 静态方法,从连接池中取出连接 
  37.         @return MySQLdb.connection 
  38.         """  
  39.         if Mysql.__pool is None:  
  40.             __pool = PooledDB(creator=MySQLdb, mincached=1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值