自己开发了一个数据库连接池,与大家分享,高手指教

只要说一下它的使用,源码给大家
先说说使用:

package org.liufei.test;

import org.liufei.common.DBCP;
import org.liufei.dbcp.connectionFactory.ConnectionFactory;
import org.liufei.dbcp.connectionFactory.DbcpConnection;


public class Test {
public static void main(String[] args) {
DbcpConnection test = ConnectionFactory.getDbcpConnection(DBCP.MICROSOFT);
try {
for(int i = 0 ;i < 20000000; i++){
System.out.println(test.getConnection());
}
test.destroy() ;
} catch (Exception e) {
e.printStackTrace();
}
}
}


极限测试:
mysql上限:7804,超过了会报IO异常。
oracle上限:300,超过了会报打开游标数目过大
SqlServer上限:好像是越多越好,真是韩信用兵,多多益善,我设置了1000000还没有报错,实在不想再等了,呵呵

但是我还是会选择使用oracle。

获取不同的数据库连接池有下面一个枚举类选择:

package org.liufei.common;
/**
* 选择加载的数据库连接池类型
* @author 刘飞
*
*/
public enum DBCP {
MICROSOFT, MYSQL, ORACLE ;
}


连接池接口:

package org.liufei.dao;

import java.io.Serializable;
import java.sql.Connection;


public interface PoolManager extends Serializable {

/**
* connection连接对象池初始化
* @return
* @throws Exception
*/
public boolean initialize() throws Exception ;

/**
* connection连接对象池的销毁
* @throws Exception
*/
public void destroy() throws Exception ;

/**
* 取一个空闲可用的connection连接对象
* @return
* @throws Exception
*/
public Connection getConnection() throws Exception ;

/**
* 把一个connection连接对象从连接对象池中删除
* @throws Exception
*/
public void removeFromPool() throws Exception ;

/**
* 维护connection连接对象池大小
* @throws Exception
*/
public void fillPool() throws Exception ;

/**
* 将一个使用过的活跃连接(connection)返还给连接池。
* @param connection
* @throws Exception
*/
public void close(Connection connection) throws Exception ;

/**
* 定时器事件
* @throws Exception
*/
public void timerEvent() throws Exception ;
}


连接池管理接口:

package org.liufei.dbcp.connectionFactory;

import java.io.Serializable;
import java.sql.Connection;

/**
* 连接池管理接口
* @author 刘飞
*
*/
public interface DbcpConnection extends Serializable {

/**
* 将一个使用过的活跃连接(connection)返还给连接池。
* @param connection
* @throws Exception
*/
public void close(Connection connection) throws Exception ;

/**
* connection连接对象池的销毁
* @throws Exception
*/
public void destroy() throws Exception ;

/**
* 取一个空闲可用的connection连接对象
* @return
* @throws Exception
*/
public Connection getConnection() throws Exception ;

/**
* 检测本地系统上安装的数据库系统,并生成相应的配置文件,
* 如果本地计算机上安装了多个数据库系统,则生成是有相应的配置文件
*/
public void getConfFiles() ;

}

连接池管理接口工厂:

package org.liufei.dbcp.connectionFactory;

import java.io.Serializable;

import org.liufei.common.DBCP;

public class ConnectionFactory implements Serializable{
private static final long serialVersionUID = 102400L;

private ConnectionFactory() {
super();
}

/**
* 获取数据库连接池管理接口
* @return DbcpConnection
*/
public static DbcpConnection getDbcpConnection(DBCP dbcpparam){
return new DbcpConnectionImpl(dbcpparam) ;
}
}


代码如下,供大家下载(有jar和javadoc文档以及属性配置文件):
说明:使用时一定要导入相应的数据库jdbcjar包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值