资源池-数据库链接池简单实现-JAVA版本

 

转载:https://www.jianshu.com/p/381c86bdbff6java

看了看druid和dbcp2的原码,发现他们都有各自存储链接的方式。git

druid :

private volatile DruidConnectionHolder[] connections; 

dbcp2

private final LinkedBlockingDeque<PooledObject<T>> idleObjects = new LinkedBlockingDeque<PooledObject<T>>(); 

以本身的理解写了个简单的链接池

  • 采用LinkedBlockingQueue管理数据库链接
  • 实现javax.sql.DataSource接口
  • 采用构造者设计模式
  • 经过反射技术获取驱动
  • 兼容MYSQL5与6驱动
  • 支持配置链接池资源消耗殆尽的处理策略
  • 未实现空闲链接数控制

核心源码

  1. 初始化链接池github


     

    初始化链接池.png
  2. 获取链接sql


     

     

    获取链接.png
  3. 释放链接数据库


     

     

    释放链接.png
  4. 使用链接池设计模式


     

     

    使用方式.png

github源码地址

ClawDataSource

相关文章
相关标签/搜索