数据库连接池分析

参考文献

1.一个效果非常不错的JAVA数据库连接池

2.使用 JAVA 中的动态代理实现数据库连接池

3.MySql与oracle的JDBC测试程序

分析

参考文献1是一个用java实现的数据库连接池,可以参考其代码实现,最好也看看java源代码是怎么实现数据库连接池的,两者进行比较。

参考文献2中提到了动态代理,之前写过的一片博客:设计模式之代理模式之二(Proxy)中也讲到了动态代理,这里可以参考一下。

下面首先给出参考1中的代码示例,具体见ConnectionPool.java,修改了部门代码与注释,并该处了一个测试demo,具体见ConnectionPoolDemo.java:

ConnectionPool.java

View Code

ConnectionPoolDemo.java

View Code

运行结果如下:

View Code

ConnectionPool的类图结构如下图所示:

参考之前写singleton的时候,不适用同步方法,而是使用二次加锁的方式来使用synchronized。考虑此处是否可以使用二次加锁。

在synchronized代码块中加锁是对整个对象加锁了,扩大了锁的粒度。是否是现在的对方法加锁更优。

 

 本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2012/05/24/2516249.html,如需转载请自行联系原作者



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值