日期:2014-05-16  浏览次数:20385 次

一个支持双数据库的DB连接池
可以配2个不同的数据库,  10000000次8秒种

public class text
{
public static void main(String[] args) throws SQLException
{
long start2 = System.currentTimeMillis();
Connection conn = null;
for(int i = 1; i < 10000000; i++)
{
conn = DB.getConn(1);
conn.close();
}
System.out.println("经过10000000次的循环调用,使用连接池花费的时间" + (System.currentTimeMillis() - start2) + "ms\n");
}
}
1 楼 吃西瓜西瓜西瓜 2011-04-16  
已经反复测试过了,  没有bug的应该...
2 楼 kimmking 2011-04-16  
测试毫无意义。
3 楼 吃西瓜西瓜西瓜 2011-04-16  
这么这么说~~~  我测了好多次了~~~  
4 楼 freish 2011-04-16  
dbcp,c3p0不都可以支持多数据库么?
5 楼 吃西瓜西瓜西瓜 2011-04-16  
是可以的~~  自己重视数据库封装, 所以就写了~~~
6 楼 skzr.org 2011-04-16  
凭conn = DB.getConn(1); 猜测此连接池使用了static保存连接,通过查看class后确实这样。

邪恶过程:把此连接池放入tomcat的lib下
然后tomcat中部署使用2个应用(A和B)使用这个连接池。
然后冲突就来了,连接就开始泄漏了,B不配置连接池、只配置A的连接池,结果B可以使用A创建的连接。



7 楼 吃西瓜西瓜西瓜 2011-04-16  
=..=  有~有~这等bug... 好奇怪啊.. 我测咋没事呐...
8 楼 吃西瓜西瓜西瓜 2011-04-16  
好像是出了点毛病=..=
9 楼 evanzzy 2011-04-16  
Spring本身可以支持多数据源的,直接用就可以了
10 楼 yunzhu 2011-04-17  
测试不能证明无错
11 楼 yangyi 2011-04-17  
多数据源没有问题,统一入口更没有问题,有问题的是数据库的优点变没了,之所以采用数据库而不是直接访问文件系统,不就是为了4个特性+结构化查询吗。如果想统一,必须把这些加进来