网站大量收购独家精品文档,联系QQ:2885784924

javasql连接池.doc

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
javasql连接池.doc

到目前为目,JDBC2的连结池只是一个接口,没有真正的实现,JDBC3正在开发中,据报已经支持连结池,但 JDBC3用了JNDI技术,连结池的配置可以让一个高手都烦死. 目前第三方已经实现的连结池当然是poolman,1.0版对一般用户来说已经足够用了.配置也简单,2.0版虽然增加了一些功能,但配置也是采用JNDI,对RMI和EJB不懂的朋友可能很烦.建议用1.0的了. 如果有兴趣,自己也可以实现连结池,最关键的技术也就是把连结作为参数传给一个BEAN,用完后返回这个参数连结而不是关闭. 下面是一个简单的实现: DBConnectionManager.java程序清单如下: ???? ????001?import?java.io.*; ????002?import?java.sql.*; ????003?import?java.util.*; ????004?import?java.util.Date; ????005 ????006?/** ????007?*?管理类DBConnectionManager支持对一个或多个由属性文件定义的数据库连接 ????008?*?池的访问.客户程序可以调用getInstance()方法访问本类的唯一实例. ????009?*/ ????010?public?class?DBConnectionManager?{ ????011?static?private?DBConnectionManager?instance;?//?唯一实例 ????012?static?private?int?clients; ????013 ????014?private?Vector?drivers?=?new?Vector(); ????015?private?PrintWriter?log; ????016?private?Hashtable?pools?=?new?Hashtable(); ????017 ????018?/** ????019?*?返回唯一实例.如果是第一次调用此方法,则创建实例 ????020?* ????021?*?@return?DBConnectionManager?唯一实例 ????022?*/ ????023?static?synchronized?public?DBConnectionManager?getInstance()?{ ????024?if?(instance?==?null)?{ ????025?instance?=?new?DBConnectionManager(); ????026?} ????027?clients++; ????028?return?instance; ????029?} ????030 ????031?/** ????032?*?建构函数私有以防止其它对象创建本类实例 ????033?*/ ????034?private?DBConnectionManager()?{ ????035?init(); ????036?} ????037 ????038?/** ????039?*?将连接对象返回给由名字指定的连接池 ????040?* ????041?*?@param?name?在属性文件中定义的连接池名字 ????042?*?@param?con?连接对象/ ????043?*/ ????044?public?void?freeConnection(String?name,?Connection?con)?{ ????045?DBConnectionPool?pool?=?(DBConnectionPool)?pools.get(name); ????046?if?(pool?!=?null)?{ ????047?pool.freeConnection(con); ????048?} ????049?} ????050 ????051?/** ????052?*?获得一个可用的(空闲的)连接.如果没有可用连接,且已有连接数小于最大连接数 ????053?*?限制,则创建并返回新连接 ????054?* ????055?*?@param?name?在属性文件中定义的连接池名字 ????056?*?@return?Connection?可用连接或null ????057?*/ ????058?public?Connection?getConnection(String?name)?{ ????059?DBConnectionPool?pool?=?(DBConnectionPool)?pools.get(name); ????060?if?(pool?!=?null)?{ ????061?return?pool.getConnec

文档评论(0)

ziyouzizai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档