快速业务通道

Java数据库连接池原理机制详解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
待时间 public synchronized void release() //断开所有连接,释放占用的系统资源 private Connection newConnection() //新建一个数据库连接 public synchronized void TimerEvent() //定时器事件处理函数 } public class DBConnectionManager { static private DBConnectionManager instance; //连接池管理类的唯一实例 static private int clients;//客户数量 private ArrayList drivers=new ArrayList(); //容器,存放数据库驱动程序 private HashMap pools = new HashMap(); //以name/value的形式存取连接池对象的名字及连接池对象  static synchronized public DBConnectionManager getInstance() /**如果唯一的实例instance已经创建,直接返回这个实例;否则,调用私有构造函数, 创建连接池管理类的唯一实例*/ private DBConnectionManager() //私有构造函数,在其中调用初始化函数init() public void freeConnection(String name,Connection con) //释放一个连接,name是一个连接池对象的名字  public Connection getConnection(String name) //从名字为name的连接池对象中得到一个连接 public Connection getConnection(String name,long time) //从名字为name的连接池对象中取得一个连接,time是等待时间 public synchronized void release()//释放所有资源 private void createPools(Properties props) //根据属性文件提供的信息,创建一个或多个连接池 private void init()//初始化连接池管理类的唯一实例,由私有构造函数调用 private void loadDrivers(Properties props)//装载数据库驱动程序 }

Java数据库连接池原理机制详解(3)

时间:2010-12-15

3、连接池使用

上面所实现的连接池在程序开发时如何应用到系统中呢?下面以Servlet为例说明连接池的使用。

Servlet的生命周期是:在开始建立servlet时,调用其初始化(init)方法。之后每个用户请求都导致一个调用前面建立的实例的service方法的线程。最后,当服务器决定卸载一个servlet时,它首先调用该servlet的destroy方法。

根据servlet的特点,我们可以在初始化函数中生成连接池管理类的唯一实例(其中包括创建一个或多个连接池)。如:

public void init() throws ServletException {   connMgr=DBConnectionManager.getInstance(); }

然后就可以在service方法中通过连接池名称使用连接池,执行数据库操作。最后在destroy方法中释放占用的系统资源,如:

public void destroy(){ connMgr.release(); super.destroy(); }

结束语

在使用JDBC进行与数据库有关的应用开发中,数据库连接的管理是一个难点。很多时候,连接的混乱管理所造成的系统资源开销过大成为制约大型企业级应用效率的瓶颈。对于众多用户访问的Web应用,采用数据库连接技术的系统在效率和稳定性上比采用传统的其他方式的系统要好很多。本文阐述了使用JDBC访问数据库的技术?讨论了基于连接池技术的数据库连接管理的关键问题并给出了一个实现模型。文章所给出的是连接池管理程序的一种基本模式,为提高系统的整体性能,在此基础上还可以进行很多有意义的扩展。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号