c3p0和dbcp的使用和区别

数据库连接

现在常用的开源数据连接池主要有c3p0、dbcp和proxool三种:

一、spring配置文件引入

      
      
        
        
        
        
        
        
        
        
        
        
        
        
          
        
          
        
         
        
          
          
      
      
    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
         
        
        
         
        
        
        
        
        
         
        
                
    

二、介绍

1、c3p0

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。   

2、dbcp简介:   
DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。   

三、c3p0与dbcp区别:   

dbcp没有自动的去回收空闲连接的功能  c3p0有自动回收空闲连接功能  
两者主要是对数据连接的处理方式不同!C3P0提供最大空闲时间,DBCP提供最大连接数。 

前者当连接超过最大空闲连接时间时,当前连接就会被断掉。DBCP当连接数超过最大连接数时,所有连接都会被断开。

dbcp它的原理是维护多个连接对象Connection,在web项目要连接数据库时直接使用它维护的对象进行连接,省去每次都要创建连接对象的麻烦。提高效率和减少内存使用。

s3p0可以自动回收连接,dbcp需要自己手动释放资源返回。不过dbcp效率比较高。


c3p0和dbcp的区别
  c3p0 dbcp
对数据连接的处理方式 提供最大空闲时间 提供最大连接数
什么时候连接挂断 当连接超过最大空闲连接时间时 当连接数超过最大连接数时
连接资源是否释放 自动回收连接 需要自己手动释放资源
效率   效率比较高()
原理  

维护多个连接对象Connection,在web项目要连接数据

库时直接使用它维护的对象进行连接,省去每次都要创

建连接对象的麻烦。提高效率和减少内存使用

推荐使用 hibernate开发 spring开发

你可能感兴趣的:(java基础,数据库)