现在的位置: 首页 > 综合 > 正文

数据库连接池

2013年06月30日 ⁄ 综合 ⁄ 共 1008字 ⁄ 字号 评论关闭

    传统的数据库连接:通过DriverManager获得数据库连接对象,每个数据库连接对象都对应一个物理数据库连接,每次操作都打开一个连接,使用完后又都关闭连接。频繁的打开、关闭连接造成系统的性能低下。

    使用数据库连接池进行连接:当应用程序启动时,系统主动地建立足够数量的数据库连接,并将这些连接组成一个连接池。每当应用程序请求数据库连接时,不再重新打开连接,而是从连接池中取出已有的连接使用,使用完后,也不关闭数据库连接,而是直接将连接归还给连接池。相比传统的数据库连接,性能得到了明显的提升。

    连接池的分配与释放:

    设置空闲池,将尚未分配的连接放入空闲池中。每当用户请求连接是,系统首先检查空闲池内是否存在空闲连接。如果有,则分配建立时间最长的连接给用户;分配之前,需要先检查连接的有效性,如果连接已经失效,就删除该连接,然后考虑使用下一个连接。如果空闲池中没有找到连接,则判断连接池中的连接是否达到上限。如果没有达到,则新建一个连接给用户;如果已经达到上限,则将用户放入等待队列中,一旦有连接被释放,则将该连接分配给等待队列中的第一个用户;如果等待超时,则返回空值。系统对已分配出去的连接,不再维护其有效性,只计数,当使用完成之后再将其返还给空闲池。对于空闲池连接的有效性检查,可以专门开辟一个线程定时检测,这样做会加大系统的开销,但是能保证后期的响应速度;也可以只在分配连接之前进行有效性检查。

    连接池的实现:实现连接池类和连接池管理类。

    连接池类功能:

        1、从连接池中获取或者创建可用的连接。

        2、使用完毕后将连接返还给连接池。

        3、在系统退出之前,断开所有连接并释放嗦占用的系统资源。

        4、处理无效连接。

        5、限制连接池中的连接数不低于最小连接数且不超过最大连接数。

    连接池管理类(采用单态模式)功能:

        1、注册数据库驱动程序。

        2、根据配置文件,创建连接池对象。

        3、命名连接池,管理连接池。

        4、跟踪连接池的使用,以便需要时关闭连接并释放资源。

    常见的数据库连接池:

        1、由商业应用服务器实现。

        2、开源的连接池:

            DBCP连接池

            C3P0连接池 

    

抱歉!评论已关闭.