在java项目中为了节省与数据库之间的交互成本,经常会用到数据库连接池,dbcp和c3p0就是其中比较流行的两种
所谓数据库连接池,就是事先把与数据库的连接放在一起的管理容器,当项目中要与数据库打交道的时候,不需要重复的与数据库建立连接,断开连接,浪费时间,损耗性能,
只需要从连接池中申请或者获取一个连接即可,那么dbcp和c3p0到底有什么不同呢
c3p0是一个开源的jdbc连接池,可进行扩展,hibernate和spring框架中都有用到c3p0
dbcp是apache下的一个项目,是tomcat中使用的连接池组件
两者的区别在于实现机制不一样,核心理念也不一样,但是达到的目的是一样的,
c3p0有自动回收空闲连接的功能,而dbcp没有,
c3p0提供的是最大空闲时间,当当前连接的空闲时间超过最大空闲时间时,当前连接就会断开
dbcp提供的是最大连接数,当当前连接超过所设值的最大连接数时,所有的连接都会断开;