资讯专栏INFORMATION COLUMN

JAVA数据库连接池总结

xioqua / 556人阅读

摘要:目前主流的数据库连接池有等几种。默认值初始化连接池中的连接数,取值应在与之间,默认为最大空闲时间秒内未使用则连接被丢弃。当连接池中的连接耗尽的时候一次同时获取的连接数。每秒检查所有连接池中的空闲连接。

一、数据库连接池

数据库连接池的基本思想就是为数据库连接建立一个缓冲池,预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需要从“缓冲池”中取出一个,使用完之后在放回去,节省连接建立、释放过程中的资源、时间消耗。
目前主流的数据库连接池有DBCP、C3P0、DRUID等几种。

1、DBCP

DBCP来自apache家族,是基于common-pool对象池机制的数据库连接池,目前有三个不同的版本支持不同的JDBC规范:
DBCP v1.3版本(JDBC3)
DBCP v1.4版本(JDBC4)
DBCP v2.X版本(JDBC4.1)

DBCP2 代表的也就是2.X版本,相比较于1.x版本,性能有了较大提升,支持JMX和一些新特性;DBCP2.X和DBCP1.x是不兼容的,包括具体配置上面的参数也有些不同;项目引用的类名称、maven仓库的位置坐标也不一样。

2、C3P0

C3P0 支持JDBC3规范和JDBC2的标准扩展; 在hibernate项目中使用的比较多;

3、DRUID

Druid 是阿里巴巴开源平台上一个数据库连接池实现,除了数据库连接池外,还提供了一系列内置的jdbc组件,可以监控DB连接池和sql执行情况。

二、主要区别

1、c3p0提供最大空闲时间,当连接超过最大空闲连接时间,当前连接就会被断掉。
2、DBCP提供最大连接数,当连接数超过最大连接数时候,所有连接都会被断开。
3、Druid结合了C3P0、DBCP的优点,同时针对不同的数据库,在实现上有针对性的优化。

三、使用建议

1、Druid除了连接池,监控功能也不错,便于优化,一般情况下推荐使用;
2、如果使用的是oracle数据库,不建议使用c3p0,因为c3p0不遵循LRU;

四、属性配置

spring中datasource的配置分别如下:

1、DBCP配置

    
      
      
      
     
     
     
    
     
      
      
      
    
      
    
     
    
2、DBCP2配置

    
      
      
      
     
     
     
    
     
3、C3P0配置

    
      
      
      
     
      
     
    
    
    
    
    
    
    
    
4、DRUID配置
 
   
    
   
   
   
   
  
   
  
   
  
   
  
  
  
   
   
  
   
   
  
  
  
   
   
   
   
    
     
    
   
 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69594.html

相关文章

  • 技术经理:求求你,别再乱改据库连接的大小了!

    摘要:你仅仅需要一个大小为数据库连接池,然后让剩下的业务线程都在队列里等待就可以了。你应该经常会看到一些用户量不是很大的应用中,为应付大约十来个的并发,却将数据库连接池设置成,的情况。请不要过度配置您的数据库连接池的大小。 文章翻译整理自: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing欢迎关注个人微信公众...

    darkbug 评论0 收藏0
  • 技术经理:求求你,别再乱改据库连接的大小了!

    摘要:你仅仅需要一个大小为数据库连接池,然后让剩下的业务线程都在队列里等待就可以了。你应该经常会看到一些用户量不是很大的应用中,为应付大约十来个的并发,却将数据库连接池设置成,的情况。请不要过度配置您的数据库连接池的大小。 文章翻译整理自: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing欢迎关注个人微信公众...

    苏丹 评论0 收藏0
  • Java3y文章目录导航

    摘要:前言由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 前言 由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 由于更新比较频繁,因此隔一段时间才会更新目录导航哦~想要获取最新原创的技术文章欢迎关注我的公众号:Java3y Java3y文章目录导航 Java基础 泛型就这么简单 注解就这么简单 Druid数据库连接池...

    KevinYan 评论0 收藏0

发表评论

0条评论

xioqua

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<