在JAVA中实现JDBC数据库连接池

【转自e良师益友网】Java程序员都很羡慕Windows ADO ,只需要new Connection 就可以直接从数据库连接池中返回Connection。并且 ADO Connection 是线程安全的,多个线程可以共用一个Connection,所以ASP程序一般都把getConnection 放在 Global.asa 文件中,在 IIS 启动时建立数据库连接。ADO 的Connection 和Result 都有很好的缓冲,并且很容易使用。推荐学习尚硅谷JDBC视频教程

其实我们可以自己写一个JDBC数据库连接池。

写JDBC connection pool 的注意事项有:

1、有一个简单的函数从连接池中得到一个 Connection。

2、close 函数必须将connection 放回 数据库连接池。

3、当数据库连接池中没有空闲的connection,数据库连接池必须能够自动增加connection 个数。

4、当数据库连接池中的connection 个数在某一个特别的时间变得很大,但是以后很长时间只用其中一小部分,应该可以自动将多余的connection 关闭掉。

5、如果可能,应该提供debug 信息报告没有关闭的new Connection 。

如果要new Connection 就可以直接从数据库连接池中返回Connection, 可以这样写( Mediator pattern ) (以下代码中使用了中文全角空格):

在JAVA中实现JDBC数据库连接池

看来并不难。不过不建议这种写法,因为应该尽量避免使用Java Interface, 关于Java Interface 的缺点我另外再写文章讨论。大家关注的是Connection Pool 的实现方法。下面给出一种实现方法。

在JAVA中实现JDBC数据库连接池

在JAVA中实现JDBC数据库连接池

在JAVA中实现JDBC数据库连接池

在JAVA中实现JDBC数据库连接池

在JAVA中实现JDBC数据库连接池

 

在JAVA中实现JDBC数据库连接池

在JAVA中实现JDBC数据库连接池

在JAVA中实现JDBC数据库连接池

 

在JAVA中实现JDBC数据库连接池

使用:

在JAVA中实现JDBC数据库连接池

运行测试程序后打印JDBC数据库连接池中Connection状态,以及正在使用的没有关闭Connection信息。e良师益友网还有更多编程语言教程知识供你学习。

在JAVA中实现JDBC数据库连接池

上一篇:(转)go语言nsq源码解读二 nsqlookupd、nsqd与nsqadmin


下一篇:PAT甲题题解-1096. Consecutive Factors(20)-(枚举)