- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实现jdbc数据库连接池?收藏 网上看到一位大牛写的连接类。此类非常简单,免去了网上众多资料里所说的麻烦的tomcat配置,更强的是它可以通用!不仅oracle,mysql,sqlserver2000都行,因为它依据的是你自己连接数据库的驱动。当然首先你要保证你拥有一个能连接自己数据库的对应驱动类。如下面以mysql为例: 先附上牛人(可惜没留名!)的原码:来自?“豆豆在线”package?myDB;import?java.io.*;import?java.sql.*;import?java.util.*;import?java.util.Date; /***?管理类DBConnectionManager支持对一个或多个由属性文件定义的数据库连接*?池的访问.客户程序可以调用getInstance()方法访问本类的唯一实例.*/public?class?DBConnectionManager?{static?private?DBConnectionManager?instance;?//?唯一实例static?private?int?clients; private?Vector?drivers?=?new?Vector();private?PrintWriter?log;private?Hashtable?pools?=?new?Hashtable(); /***?返回唯一实例.如果是第一次调用此方法,则创建实例**?@return?DBConnectionManager?唯一实例*/static?synchronized?public?DBConnectionManager?getInstance()?{if?(instance?==?null)?{instance?=?new?DBConnectionManager();}clients++;return?instance;} /***?建构函数私有以防止其它对象创建本类实例*/private?DBConnectionManager()?{init();} /***?将连接对象返回给由名字指定的连接池**?@param?name?在属性文件中定义的连接池名字*?@param?con?连接对象*/public?void?freeConnection(String?name,?Connection?con)?{DBConnectionPool?pool?=?(DBConnectionPool)?pools.get(name);if?(pool?!=?null)?{pool.freeConnection(con);}} /***?获得一个可用的(空闲的)连接.如果没有可用连接,且已有连接数小于最大连接数*?限制,则创建并返回新连接**?@param?name?在属性文件中定义的连接池名字*?@return?Connection?可用连接或null*/public?Connection?getConnection(String?name)?{DBConnectionPool?pool?=?(DBConnectionPool)?pools.get(name);if?(pool?!=?null)?{return?pool.getConnection();}return?null;} /***?获得一个可用连接.若没有可用连接,且已有连接数小于最大连接数限制,*?则创建并返回新连接.否则,在指定的时间内等待其它线程释放连接.**?@param?name?连接池名字*?@param?time?以毫秒计的等待时间*?@return?Connection?可用连接或null*/public?Connection?getConnection(String?name,?long?time)?{DBConnectionPool?pool?=?(DBConnectionPool)?pools.get(name);if?(pool?!=?null)?{return?pool.getConnection(time);}return?null;} public?int?getClient(){?return?clients;} /***?关闭所有连接,撤销驱动程序的注册*/public?synchronized?void?release()?{//?等待直到最后一个客户程序调用if?(--clients?!=?0)?{return;} Enumeration?allPools?=?pools.elements();while?(allPools.hasM
文档评论(0)