java自定义连接池_java自定义数据库连接池.doc

java自定义数据库连接池

java:自定义数据库连接池

连接池是非常好的想法,应用很普遍。自己写一个数据库连接池,并不像想象中那样困难。一般系统对连接池的功能不会有太多要求,使用自己的连接池未必是个坏主意。下面以Oracle为例,但是对Teradata和Greenplum也是可行的。另外我还实现了连接有效性检查(checkConn)和恢复连接(resetConn)的方法。本例编程采用的是JRE1.4.2环境(别忘了准备访问数据库的jar包)。有任何问题请随时留言,欢迎探讨。

在Oracle内创建测试数据:

drop table my_table;

create table my_table(

field_id varchar2(3),

field_content varchar2(60),

record_create_date date default sysdate

);

insert into my_table(field_id,field_content) values('001','this is first record');

insert into my_table(field_id,field_content) values('002','this is second record');

insert into my_table(field_id,field_content) values('003','this is third record');

commit;

DBPool.java:

package dataWebService;

import java.sql.DriverManager;

import java.util.Date;

import java.sql.Connection;

import java.sql.SQLException;

import java.sql.Statement;

public class DBPool{

private String cls;

private String url;

private String usr;

private String pss;

private int connCount = 3;//连接数

private Connection[] connections;//保存数据库连接

private String[] connStatus;// 已连可用Y 已连不可用N 未连接X

private Date[] lastQueryTime;//时间戳

public DBPool(DBPoolConfiguration poolConfiguration){

this.connCount=poolConfiguration.getConnCount();

this.cls=poolConfiguration.getCls();

this.url=poolConfiguration.getUrl();

this.usr=poolConfiguration.getUsr();

this.pss=poolConfiguration.getPss();

this.connections=new Connection[this.connCount];

this.connStatus=new String[this.connCount];

for(int i=0;i

this.connStatus[i]="X";//初始化全部未连接

}

this.lastQueryTime = new Date[this.connCount];

}

public DBPool(String cls,String url,String usr,String pss){

this.cls=cls;

this.url=url;

this.usr=usr;

this.pss=pss;

this.connections=new Conn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值