数据库连接池技术 1 连接池原理 连接池技术的核心思想是:连接复用,通过建立一个数据库连接池以及一套连接使用、分配、治理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销
另外,由于对 JDBC 中的原始连接进行了封装,从而方便了数据库应用对于连接的使用(非凡是对于事务处理),提高了开发效率,也正是因为这个封装层的存在,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能
连接池主要由三部分组成:连接池的建立、连接池中连接的使用治理、连接池的关闭
下面就着重讨论这三部分及连接池的配置问题
1 连接池的建立 应用程序中建立的连接池其实是一个静态的
所谓静态连接池是指连接池中的连接在系统初始化时就已分配好,且不能随意关闭连接
Java 中提供了很多容器类可以方便的构建连接池,如:Vector、Stack、Servlet、Bean 等,通过读取连接属性文件 Connections
properties与数据库实例建立连接
在系统初始化时,根据相应的配置创建连接并放置在连接池中,以便需要使用时能从连接池中获取,这样就可以避免连接随意的建立、关闭造成的开销
2 连接池的治理 连接池治理策略是连接池机制的核心
当连接池建立后,如何对连接池中的连接进行治理,解决好连接池内连接的分配和释放,对系统的性能有很大的影响
连接的合理分配、释放可提高连接的复用,降低了系统建立新连接的开销,同时也加速了用户的访问速度
下面介绍连接池中连接的分配、释放策略
连接池的分配、释放策略对于有效复用连接非常重要,我们采用的方法是一个很有名的设计模式:Reference Counting(引用记数)
该模式在复用资源方面应用的非常广泛,把该方法运用到对于连接的分配释放上,为每一个数据库连接,保留一个引用记数,用来记录该连接的使用者的个数