`

【转】HIbernate(2)--连接池配置总结基于第三方c3p0和proxool

阅读更多

一直都在用连接池技术,也是个好习惯,但用连接池技术必须要明白,为什么要为数据库加上连接池

数据库连接池概述: 
    数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。

    数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素: 
    1)最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费; 
    2)最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。 
    3)如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。 




Hibernate支持第三方的连接池,

官方推荐的连接池是C3P0,Proxool,以及DBCP。在配置连接池时需要注意的有三点:

一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式。

二、默认情况下(即没有配置连接池的情况下),Hibernate会采用内建的连接池。但这个连接池性能不佳,且存在诸多BUG(笔者就曾在Mysql环境下被八小时连接悬空问题困扰过),因此官方也只是建议仅在开发环境下使用。


三、Hibernate2和Hibernate3的命名空间有所变化。例如,配置C3P0时的provider_class有Hibernate2环境下使用net.sf.hibernate.connection.C3P0ConnectionProvider,在Hibernate3环境下使用org.hibernate.connection.C3P0ConnectionProvider。

下面是Hibernate环境下几种常见的连接池配置:

1Hibernate

默认连接池

分享到:
评论

相关推荐

    HIbernate连接池配置总结基于第三方c3p0和proxool

    【知识点详解】 ...总的来说,选择和配置适合的Hibernate连接池是优化数据库性能的关键步骤,需要根据项目的规模、并发量和特定需求来综合考虑。同时,定期评估和调整连接池参数也是保持系统高效运行的重要任务。

    hibernate3+ proxool-0.9.1配置 和proxool-0.9.1.jar

    标题中的“hibernate3+ proxool-0.9.1配置”涉及到的是在Java开发中,使用Hibernate3 ORM框架与Proxool连接池的整合配置。Hibernate3是一款流行的持久层框架,它允许开发者用面向对象的方式来操作数据库,而Proxool...

    Hibernate2和Hibernate3连接池配置.doc

    本文将详细讲解Hibernate2和Hibernate3中如何配置连接池,以及官方推荐的C3P0、Proxool和DBCP等连接池的使用。 首先,我们需要了解的是,Hibernate2和Hibernate3对连接池的支持有所不同。在Hibernate2中,Apache的...

    proxool连接池配置详解

    Proxool是一个开源的轻量级Java数据库连接池实现,其主要目标是替代常见的数据库连接池解决方案,如C3P0或DBCP,并且提供了更加灵活和易于配置的特性。在实际应用中,合理配置Proxool可以显著提高系统的性能和稳定性...

    hibernate 连接池配置详解

    以下是使用C3P0配置Hibernate连接池的方法: 1. **添加依赖**:确保项目中有C3P0相关的JAR包,例如`c3p0-0.8.4.5.jar`。 2. **配置连接池参数**: - 在`hibernate.cfg.xml`文件中设置以下属性来配置C3P0连接池: ...

    Hibernate连接池的三种配置方式

    标题中的“Hibernate连接池的三种配置方式”指的是Hibernate框架中常用的三种数据库连接池实现,分别是:DBCP (BasicDataSource),C3P0,以及Proxool。这些连接池的目的是管理和优化数据库连接的创建、分配和回收,...

    Hibernate几种连接池的比较

    在上述配置中,我们看到了Hibernate连接池的配置差异: 1. **Hibernate 默认连接池**:当没有指定连接池时,Hibernate会使用内置的连接池,但这并不推荐用于生产环境,因为它的性能和稳定性都不够理想。 2. **C3P0...

    hibernate配置连接池大全

    总结,Hibernate连接池的配置是优化数据库操作性能的关键步骤。正确选择和配置连接池,可以大大提高系统的响应速度和稳定性。本文以Proxool为例,介绍了配置过程,并简要提及了其他常见的连接池,希望能为你的项目...

    hibernate连接池配置

    在Hibernate中,官方推荐的连接池有C3P0、Proxool和DBCP。 1. **Apache DBCP连接池**: - 在Hibernate 2中,DBCP是官方推荐的连接池之一,但在Hibernate 3及更高版本中,由于存在缺陷,不再推荐使用。如果在...

    Hibernate的连接池和数据源配置

    Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP。在配置连接池时需要注意的有三点: 一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在...

    Hibernate3.2连接池

    本文将详细阐述如何在Hibernate 3.2中配置和使用连接池,包括C3P0、DBCP和通过JNDI从容器获取连接池。 1. **使用Hibernate自带的连接池** Hibernate 3.2虽然自带了一个连接池,但由于性能和稳定性问题,官方并不...

    java hibernate中各种连接池比较

    本文将对比分析三个常见的开源数据连接池:C3P0、DBCP 和 Proxool,并深入探讨它们的主要参数和使用场景。 1. C3P0 Hibernate 开发团队推荐使用 C3P0 连接池。C3P0 是一个开源的 JDBC 连接池,它提供了强大的异常...

    数据库连接池以及hibernate对各种连接池的整合

    3. **命名空间变化**:不同Hibernate版本中,连接池提供类的全限定名可能不同,如C3P0在Hibernate 2和3中的配置类名差异。 配置示例: ```xml <hibernate-configuration> <session-factory> <!-- 配置C3P0连接池 ...

    hibernate连接池驱动

    总的来说,理解并正确配置Hibernate连接池驱动对于提升应用的性能和可扩展性至关重要。无论是c3p0还是Proxool,它们都是为了优化数据库连接的生命周期管理,减少数据库连接创建和释放带来的开销,从而提高系统整体的...

    proxool-0.8.3.zip

    `proxool-0.8.3.zip` 是一个包含 `Proxool` 数据库连接池的老版本资源包,主要用于优化数据库连接管理,特别是在使用 Hibernate 框架时。`Proxool` 是一个轻量级的连接池实现,它允许应用程序高效地管理和复用数据库...

    Hibernate连接池的各种配置

    总的来说,理解和配置Hibernate连接池是优化Java应用性能的关键步骤。Proxool虽然已不再被广泛使用,但理解其工作原理和配置方式有助于我们更好地理解和使用其他现代连接池实现,如C3P0和HikariCP。在实践中,根据...

    hibernate连接池.doc

    文档中的标题和描述提到了Hibernate对第三方连接池的支持,特别是C3P0、Proxool和DBCP。下面我们将深入探讨这些连接池以及在Hibernate中的配置细节。 首先,C3P0是一个开源的JDBC连接池,它提供了数据源和JNDI绑定...

    Hibernate - Proxool简单实例

    然而,Proxool已停止维护,可能无法支持最新的数据库驱动和JDBC规范,对于大型企业应用,可能需要考虑更活跃的连接池实现,如HikariCP或C3P0。 综上,这个实例展示了如何在Hibernate项目中集成Proxool,通过理解其...

Global site tag (gtag.js) - Google Analytics