- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实现jdbc数库连接池
实现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
您可能关注的文档
- 宏观微观经济学汇总.doc
- 宏观经济 第章生活费用的衡量(题目+答案+详解).doc
- 宏观经济 习题8-29-30.doc
- 宏观经济 习题apter 28.doc
- 宏观经济因素对的影响分析.doc
- 宏观经济存在的及对策.doc
- 宏观经济学 课点题目答案.doc
- 宏观经济学(Mroeconomics).doc
- 宏观经济学作业作).doc
- 宏观经济学期末及答案.doc
- 智能化革新,2025年智能传感技术在高端装备状态监测中的应用实践指南报告.docx
- 2025年中考第二次模拟考试卷:生物(天津卷)(解析版).docx
- 体育赛事品牌价值评估体系在体育赛事赞助商品牌竞争力提升中的应用与创新发展报告.docx
- 智能化服务升级下的2025年轨道交通车站乘客流失率降低策略研究分析报告.docx
- 中小学STEAM教育在2025年的实践成果与应用价值研究报告.docx
- 保险科技助力产品与服务升级——2025年行业变革与发展趋势报告.docx
- 全球农业生物技术应用现状与2025年行业发展趋势预测报告.docx
- 2025年智能睡眠监测设备技术原理在健康产业市场细分领域市场前景预测中的应用报告.docx
- 2025年人工智能大模型伦理风险评估与应对:风险控制与应对策略研究报告.docx
- 2025年环保型家居涂料市场推广策略与技术创新深度案例分析报告.docx
文档评论(0)