给PyBatis添加数据库连接池支持-pybatis的准备阶段(十二)

我在这篇文章中大概介绍了一下DBUtil的用法。

现在是时候给pybatis添加数据库连接池的支持了。不然每次都新建连接,代价还是蛮高的。

这里使用了DBUtils搭建了数据库连接池。目的是给pybatis提供数据库连接。

其实仅仅是封装了DBUtils中的PooledDB。

# -*- coding:utf-8 -*-
'''
Created on 2013-3-12

@author: naughty
'''

from DBUtils import PooledDB
import MySQLdb
class ConnectionPool(object):
    '''
    数据库连接池。这个类只提供连接,使用者需要自己手动关闭连接
    '''

    def __init__(self, serverhost, username, password, db):
        '''
        构造函数
        mincached: initial number of idle connections in the pool
            (0 means no connections are made at startup)
        maxcached: maximum number of idle connections in the pool
            (0 or None means unlimited pool size)
        '''
        self.pool = PooledDB.PooledDB(MySQLdb, mincached=5, maxcached=100, host=serverhost, user=username, passwd=password, db=db) 
        
    def getConnection(self):
        '''
        取得一个数据库连接
        '''
        return self.pool.connection()
    
    def shutdownAllConnection(self):
        '''
        关闭所有连接
        '''
        for conn in self.pool:
            conn.close()


用户可以直接通过初始化一个该连接池,然后通过getConnection方法得到一个连接。注意,用户需要自己手动关闭连接,就像使用普通的连接一样。

你可能感兴趣的:(给PyBatis添加数据库连接池支持-pybatis的准备阶段(十二))