`
zhengxuezhou
  • 浏览: 151894 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate c3p0配置

    博客分类:
  • web
阅读更多
简介  C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

C3P0配置
  <c3p0-config>

  <default-config>

  <!–当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 –>

  <property name=”acquireIncrement”>3</property>

  <!–定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 –>

  <property name=”acquireRetryAttempts”>30</property>

  <!–两次连接中间隔时间,单位毫秒。Default: 1000 –>

  <property name=”acquireRetryDelay”>1000</property>

  <!–连接关闭时默认将所有未提交的操作回滚。Default: false –>

  <property name=”autoCommitOnClose”>false</property>

  <!–c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么

  属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试

  使用。Default: null–>

  <property name=”automaticTestTable”>Test</property>

  <!–获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效

  保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试

  获取连接失败后该数据源将申明已断开并永久关闭。Default: false–>

  <property name=”breakAfterAcquireFailure”>false</property>

  <!–当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出

  SQLException,如设为0则无限期等待。单位毫秒。Default: 0 –>

  <property name=”checkoutTimeout”>100</property>

  <!–通过实现ConnectionTester或QueryConnectionTester的类来测试连接。类名需制定全路径。

  Default: com.mchange.v2.c3p0.impl.DefaultConnectionTester–>

  <property name=”connectionTesterClassName”></property>

  <!–指定c3p0 libraries的路径,如果(通常都是这样)在本地即可获得那么无需设置,默认null即可

  Default: null–>

  <property name=”factoryClassLocation”>null</property>

  <!–Strongly disrecommended. Setting this to true may lead to subtle and bizarre bugs.

  (文档原文)作者强烈建议不使用的一个属性–>

  <property name=”forceIgnoreUnresolvedTransactions”>false</property>

  <!–每60秒检查所有连接池中的空闲连接。Default: 0 –>

  <property name=”idleConnectionTestPeriod”>60</property>

  <!–初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 –>

  <property name=”initialPoolSize”>3</property>

  <!–最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 –>

  <property name=”maxIdleTime”>60</property>

  <!–连接池中保留的最大连接数。Default: 15 –>

  <property name=”maxPoolSize”>15</property>

  <!–JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements

  属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。

  如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0–>

  <property name=”maxStatements”>100</property>

  <!–maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0 –>

  <property name=”maxStatementsPerConnection”></property>

  <!–c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能

  通过多线程实现多个操作同时被执行。Default: 3–>

  <property name=”numHelperThreads”>3</property>

  <!–当用户调用getConnection()时使root用户成为去获取连接的用户。主要用于连接池连接非c3p0

  的数据源时。Default: null–>

  <property name=”overrideDefaultUser”>root</property>

  <!–与overrideDefaultUser参数对应使用的一个参数。Default: null–>

  <property name=”overrideDefaultPassword”>password</property>

  <!–密码。Default: null–>

  <property name=”password”></property>

  <!–定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度。注意:

  测试的表必须在初始数据源的时候就存在。Default: null–>

  <property name=”preferredTestQuery”>select id from test where id=1</property>

  <!–用户修改系统配置参数执行前最多等待300秒。Default: 300 –>

  <property name=”propertyCycle”>300</property>

  <!–因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的

  时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable

  等方法来提升连接测试的性能。Default: false –>

  <property name=”testConnectionOnCheckout”>false</property>

  <!–如果设为true那么在取得连接的同时将校验连接的有效性。Default: false –>

  <property name=”testConnectionOnCheckin”>true</property>

  <!–用户名。Default: null–>

  <property name=”user”>root</property>

  在Hibernate(spring管理)中的配置:

  <bean id=”dataSource” class=”com.mchange.v2.c3p0.ComboPooledDataSource” destroy-method=”close”>

  <property name=”driverClass”><value>oracle.jdbc.driver.OracleDriver</value></property>

  <property name=”jdbcUrl”><value>jdbc:oracle:thin:@localhost:1521:Test</value></property>

  <property name=”user”><value>Kay</value></property>

  <property name=”password”><value>root</value></property>

  <!–连接池中保留的最小连接数。–>

  <property name=”minPoolSize” value=”10″ />

  <!–连接池中保留的最大连接数。Default: 15 –>

  <property name=”maxPoolSize” value=”100″ />

  <!–最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 –>

  <property name=”maxIdleTime” value=”1800″ />

  <!–当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 –>

  <property name=”acquireIncrement” value=”3″ />

  <property name=”maxStatements” value=”1000″ />

  <property name=”initialPoolSize” value=”10″ />

  <!–每60秒检查所有连接池中的空闲连接。Default: 0 –>

  <property name=”idleConnectionTestPeriod” value=”60″ />

  <!–定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 –>

  <property name=”acquireRetryAttempts” value=”30″ />

  <property name=”breakAfterAcquireFailure” value=”true” />

  <property name=”testConnectionOnCheckout” value=”false” />

  </bean>

连接池配置(以Hibernate为例)
  ###########################

  ### C3P0 Connection Pool###

  ###########################

  #hibernate.c3p0.max_size 2

  #hibernate.c3p0.min_size 2

  #hibernate.c3p0.timeout 5000

  #hibernate.c3p0.max_statements 100

  #hibernate.c3p0.idle_test_period 3000

  #hibernate.c3p0.acquire_increment 2

  #hibernate.c3p0.validate false

  在hibernate.cfg.xml文件里面加入如下的配置:

  <!– 最大连接数 –>

  <property name=”hibernate.c3p0.max_size”>20</property>

  <!– 最小连接数 –>

  <property name=”hibernate.c3p0.min_size”>5</property>

  <!– 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 –>

  <property name=”hibernate.c3p0.timeout”>120</property>

  <!– 最大的PreparedStatement的数量 –>

  <property name=”hibernate.c3p0.max_statements”>100</property>

  <!– 每隔120秒检查连接池里的空闲连接 ,单位是秒–>

  <property name=”hibernate.c3p0.idle_test_period”>120</property>

  <!– 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 –>

  <property name=”hibernate.c3p0.acquire_increment”>2</property>

  <!– 每次都验证连接是否可用 –>

  <property name=”hibernate.c3p0.validate”>true</property>
分享到:
评论

相关推荐

    hibernate c3p0 数据库连接池参数详解.txt

    在 Hibernate 中,C3P0 的配置主要通过 `hibernate.properties` 或 `hibernate.cfg.xml` 文件中的属性进行设置。这些配置项对于控制连接池的行为至关重要。 #### 3. 关键配置参数详解 ##### 3.1 hibernate....

    Hibernate 中配置C3P0连接池

    C3P0就是一种广泛使用的第三方JDBC连接池实现,它被集成在Hibernate框架中,可以便捷地进行配置。 **1. 为什么选择C3P0连接池** Hibernate自带的连接池算法并不成熟,主要适用于快速开发和学习,而不适合在生产...

    hibernate 配置 C3P0 连接池

    在探讨如何在Hibernate框架中配置C3P0连接池之前,我们先简要了解下Hibernate与C3P0的基本概念。 Hibernate是一个开放源代码的对象关系映射(ORM)框架,它实现了Java对象与数据库表之间的映射,允许开发人员以面向...

    Hibernatec3p0配置数据源jar包

    在使用Hibernate配置c3p0数据源时,我们需要引入`c3p0-jar`包,这个压缩包中的JAR文件包含了c3p0的所有相关类和库。在项目中,我们通常将这个JAR文件添加到类路径(ClassPath)中,以便于程序运行时能够找到并加载c3...

    配置Hibernate使用C3P0连接池

    **配置Hibernate使用C3P0连接池** 在Java Web开发中,数据库连接管理是一个至关重要的环节,有效地管理和控制数据库连接可以提高应用的性能和稳定性。Hibernate作为一款强大的ORM(对象关系映射)框架,提供了与...

    java hibernate c3p0

    3. **配置C3P0**:详述如何在Hibernate的配置文件(hibernate.cfg.xml)中添加C3P0连接池的配置,包括minPoolSize、maxPoolSize、acquireIncrement、idleTestPeriod等关键参数的含义和设置。 4. **连接池管理**:...

    hibernate c3p0实例源码

    在Hibernate的配置文件`hibernate.cfg.xml`中,我们需要添加C3P0的连接池配置。以下是一些常见的配置项: 1. `c3p0.min_size`:最小连接池大小,定义了连接池初始化时的最小连接数量。 2. `c3p0.max_size`:最大...

    hibernate数据源配置

    一个hibernate数据源的c3p0配置,希望对你有帮助

    Hibernate的C3P0架包

    5. 配置C3P0:在Hibernate的配置文件(通常是hibernate.cfg.xml)中,需要添加C3P0的配置信息,如最小连接数、最大连接数、获取连接的超时时间、空闲测试频率等。例如: ```xml &lt;property name="hibernate.c3p0.min_...

    hibernate4.5 c3p0 依赖包

    5. **配置c3p0**: 在使用Hibernate和c3p0时,需要在Hibernate的配置文件(如`hibernate.cfg.xml`)中指定c3p0的相关属性,如最小连接数、最大连接数、获取连接超时时间等,以满足特定应用的需求。 6. **集成步骤**:...

    SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip

    在本项目"SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip"中,开发者使用了SpringMVC4作为表现层,Spring4作为控制层和服务层,Hibernate4作为持久层,c3p0作为数据库连接池,以及MySQL作为数据库。...

    Hibernate+c3p0连接池SQLServer 2000

    ### Hibernate + c3p0 连接池与 SQL Server 2000 的配置与问题解决 #### 一、背景介绍 在Java开发环境中,Hibernate作为一款流行的ORM框架,能够提供一套强大的对象-关系映射机制,使得开发者可以更加便捷地进行...

    hibernate3.0+c3p0 重新自动连接

    通过以上的介绍,我们可以了解到`Hibernate3.0`与`c3p0`结合使用时,如何配置和利用`c3p0`的自动重连功能,以增强应用在面对数据库连接异常时的恢复能力。在实际项目中,正确地配置和使用`c3p0`可以显著提高系统的...

    hibernate3.3配置c3p0需要的包

    hibernate3.3版本后,hibernate配置c3p0需要的jar包,如果没有这个包,可能会报异常,找不到provider-class的那个类

    C3P0连接池配置需要的jar包

    配置C3P0连接池时,开发者通常需要在配置文件(如Hibernate的`hibernate.cfg.xml`或Spring的`applicationContext.xml`)中指定以下参数: - `driver_class`: 数据库驱动类名,例如`com.mysql.jdbc.Driver`。 - `...

    c3p0配置需要jar包

    2. **配置C3P0**:在Hibernate的配置文件(通常是`hibernate.cfg.xml`)中添加C3P0的相关配置,例如设置初始连接数、最大连接数、最小空闲连接数、超时时间等参数。 ```xml &lt;property name="hibernate.c3p0.min_...

    hibernate架包+c3p0+

    描述中提到“hibernate+c3p0匹配架包+hibernate.properties”,意味着我们需要配置相应的库文件以及Hibernate的属性配置文件来创建一个适合开发的环境。`hibernate.properties`是Hibernate的配置文件,通常包含...

    c3p0配置及jar包

    下面我们将详细介绍c3p0的配置以及在Spring中的使用,并讨论与Hibernate集成的优势。 **一、c3p0的核心概念** 1. **连接池**: c3p0维护了一个数据库连接的池,通过复用已存在的连接而不是每次请求时创建新的连接,...

    c3p0详细配置

    在与 Hibernate 集成时,可以通过 Hibernate 的配置文件(如 `hibernate.cfg.xml`)引用 C3P0 配置,以便使用 C3P0 作为连接池管理器。 在实际使用中,应根据应用程序的需求、数据库服务器的负载以及数据库系统的...

    c3p0 hibernate缓存详细配置

    标题与描述均提到了“c3p0 Hibernate缓存详细配置”,这暗示了文章将深入探讨如何在使用Hibernate框架时,通过c3p0连接池进行优化和性能提升的细节。c3p0是一个开源的数据库连接池实现,广泛应用于Java环境中,能够...

Global site tag (gtag.js) - Google Analytics