Hibernate3已经不再支持DBCP连接池,而推荐使用C3PO
DBCP的bug非常多,因此Hibernate3已经不再支持DBCP连接池,而推荐使用C3PO。建议你更换数据库连接池。
然后跑去Hibernate官方论坛看,果然,在Please migrate away
from DBCP看到Gavin说:
引用:
Guys, after many problems with DBCP, I have decided to remove built-in
support for DBCP from Hibernate3, and deprecate DBCP in Hibernate 2.1.
I advise everyone to migrate away from DBCP to something that actually
works, like C3P0 or Proxool.
(If you /must/ use DBCP, you can always write your own connection
provider.)
Actually, it is probably about time we remove any remaining
dependencies to Apache commons stuff, since historically they have
caused just /so/ much trouble. The only Apache things that do seem to
work very well are Ant and log4j. Even commons-logging is a PIA,
especially in Tomcat.
C3P0是Hibernate3.0默认的自带数据库连接池,DBCP是Apache开发的数据库连接池。我们对这两种连接池进行压力测试对比,发现在并发300个用户以下时,DBCP比C3P0平均时间快1秒左右。但在并发400个用户时,两者差不多。
速度上虽然DBCP比C3P0快些,但是有BUG:当DBCP建立的数据库连接,因为某种原因断掉后,DBCP将不会再重新创建新的连接,导致必须重新启动Tomcat才能解决问题。DBCP的BUG使我们决定采用C3P0作为数据库连接池。
分享到:
相关推荐
在给定的描述中提到,Hibernate ORM框架就曾使用DBCP作为其默认的连接池实现。 DBCP连接池的工作原理是预先创建一定数量的数据库连接,并将这些连接保存在一个池中。当应用程序需要与数据库交互时,不再直接创建新...
DBCP(Database Connection Pool)是Apache组织提供的一个开源数据库连接池组件,全称为"Jakarta DBCP"。它在Java应用中起到了管理和复用数据库连接的作用,从而提高应用程序的性能和效率。在Web项目开发中,DBCP...
数据库连接池是在应用服务器启动时创建,将创建的数据库连接放入池中,当应用程序需要访问数据库时,不再直接创建新的连接,而是从池中获取一个已存在的连接,使用完毕后不是立即关闭,而是将其归还给连接池,供...
DBCP(Database Connection Pool)是Apache组织提供的一个开源数据库连接池组件,全称为"Commons DBCP"。它在Java应用中起到了管理和复用数据库连接的作用,从而提高应用程序的性能和效率。在本压缩包中,包含了实现...
DBCP(Database Connection Pool)是Apache组织提供的一种开源数据库连接池实现,全称为"Jakarta DBCP"。它基于Java编写,旨在提高数据库访问效率,通过复用已存在的数据库连接,减少创建和销毁数据库连接时的开销,...
4. 获取和关闭连接:通过DataSource的getConnection()方法获取数据库连接,使用完毕后,调用Connection的close()方法归还连接到连接池,而不是真正关闭连接。 5. 配置事务管理:如果应用需要支持事务,可以在连接上...
除了基本功能,DBCP还提供了其他高级特性,如验证数据库连接的健康状况、自动回收长时间未使用的连接、支持多种数据库厂商的连接池配置等。在处理高并发或大数据量的场景下,这些特性有助于保持系统的稳定性和高效性...
1. **数据库连接池概念**:数据库连接池是在应用服务器启动时创建的,它会预先建立一定数量的数据库连接并存储起来,当应用程序需要访问数据库时,不再直接创建新的连接,而是从连接池中获取已存在的连接,使用完毕...
4. 获取和释放连接:通过数据源的`getConnection()`方法获取数据库连接,使用完毕后,通过`close()`方法将连接归还给连接池,而不是直接关闭。 示例代码: ```java import org.apache.commons.dbcp2....
当多个请求需要与数据库交互时,不再每次请求都创建新的连接,而是从池中获取已存在的连接,使用完毕后归还给池,而不是关闭。这种方式降低了频繁创建和关闭连接的开销,提高了系统的响应速度和并发处理能力。 2. *...
4. **归还连接**:操作完成后,程序不再需要数据库连接,它将连接返回给连接池,而不是直接关闭。连接池会进行一些检查和维护工作,如检测连接是否有效,如果有效则重新放回池中,否则销毁并创建新的连接。 5. **...
对象池允许重复使用已经创建的对象,减少因频繁创建和销毁对象而产生的性能开销。 **DBCP连接池的工作原理:** DBCP连接池在应用启动时会预先创建一定数量的数据库连接,并将这些连接放入池中。当应用需要与数据库...
数据库连接池的出现解决了这个问题,它在应用程序启动时预创建一定数量的数据库连接,并存储在一个池中,当程序需要访问数据库时,可以从池中获取一个已经建立好的连接,使用完毕后再归还给池,而不是真正关闭连接。...
commons-dbcp-1.2.1.jar //连接池的实现 commons-pool.jar //连接池实现的倚赖库 commons-collection.jar //连接池实现的倚赖库 c3po0.902.jar 只要解压dbcppoolcollectionc3po.rar即可
本主题将深入探讨如何整合Hibernate ORM框架与Spring框架,并利用Apache DBCP(BasicDataSource)连接池来高效地管理数据库连接。让我们逐一解析这些知识点。 首先,Hibernate是一个流行的Java持久化框架,它简化了...
DBCP(Database Connection Pool)是Apache软件基金会的Commons项目中的一个数据库连接池组件,它提供了数据源管理和数据库连接复用的功能,以提高应用程序的性能和效率。在Java Web开发中,DBCP常用于管理数据库...
连接池的概念就是为了解决这个问题,它维护了一个数据库连接的集合,应用程序可以快速地从池中获取一个已经建立的连接,使用完毕后再归还,而不是直接关闭。这样,频繁的数据库操作就只需要进行连接的获取和释放,极...
4. **连接管理**:DBCP连接池会监控连接的状态,如果发现某个连接已经超时或者出现异常,会自动进行回收或重新建立,确保连接池中的连接始终处于可用状态。 5. **配置参数**:DBCP允许开发者通过配置参数来调整连接...