`

druid,dbcp,c3p0 连接池的配置及应用

阅读更多

原文:http://blog.csdn.net/chenleixing/article/details/45165753/ (druid 在spring中的配置及监控)

          http://www.open-open.com/lib/view/open1430558786084.html (druid的内置监控及使用方法)

 

我再想买中的使用方法,因为我链接的mycat 集群环境的mysql

<!-- druid数据源  -->

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">   

    <!-- 基本属性 url、user、password -->  

    <property name="driverClassName" value="${jdbc.driverClassName}" />

   <property name="url" value="${jdbc.url}" />  

   <property name="username" value="${jdbc.username}" />  

   <property name="password" value="${jdbc.password}" />  

   <!-- 配置初始化大小、最小、最大 -->  

   <property name="initialSize" value="${druid.initialSize}" />  

   <property name="minIdle" value="${druid.minIdle}" />   

   <property name="maxActive" value="${druid.maxActive}" />  

   <!-- 配置获取连接等待时间 -->  

   <property name="maxWait" value="6000" />  

   <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  

   <property name="timeBetweenEvictionRunsMillis" value="60000" />  

   <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  

   <property name="minEvictableIdleTimeMillis" value="120000" />      

   <property name="validationQuery" value="select 1" />  

   <property name="testWhileIdle" value="true" />  

   <property name="testOnBorrow" value="true" />  

   <property name="testOnReturn" value="true" />  

   <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->  

   <property name="poolPreparedStatements" value="true" />  

   <property name="maxPoolPreparedStatementPerConnectionSize" value="50" />  

   <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->  

   <!--<property name="filters" value="stat" />  -->   

</bean> 

 

dbcp样例

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="${jdbc.url}" />
  <property name="username" value="${jdbc.username}" />
  <property name="password" value="${jdbc.password}" />
  <!-- 连接池启动时的初始值 -->
 <property name="initialSize" value="3" />
 <!-- 连接池在同一时间能够分配的最大活动连接的数量, 如果设置为非正数则表示不限制 -->
 <property name="maxActive" value="15" />
  <!-- 用来验证从连接池取出的连接,在将连接返回给调用者之前 -->
  <property name="validationQuery" value="select 1" />
  <!-- 指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个,做了这个配置会降低性能。 -->
  <property name="testOnBorrow" value="false" />
  <!-- 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除. -->
  <property name="testWhileIdle" value="true" />
  <!-- 指明是否在归还到池中前进行检验,做了这个配置会降低性能。 -->
  <property name="testOnReturn" value="false" />
 <!-- 连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制 -->
 <property name="maxIdle" value="5" />
 <!-- 连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建 -->
 <property name="minIdle" value="3" />
  <!-- 当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为-1表示无限等待 -->
  <property name="maxWait" value="90000" />
 <!-- 泄露的连接可以被删除的超时值, 单位秒 -->
 <property name="removeAbandonedTimeout" value="120" />
  <!-- 标记是否删除泄露的连接,如果他们超过了removeAbandonedTimout的限制.
  如果空闲时间超过removeAbandonedTimeout,连接则被认为是被泄露并且会被删除. -->
 <property name="removeAbandoned" value="true" />
 <!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. 如果设置为非正数,则不运行空闲连接回收器线程 -->
 <property name="timeBetweenEvictionRunsMillis" value="60000" />
 <!-- 连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位毫秒 -->
 <property name="minEvictableIdleTimeMillis" value="60000" />
</bean>

druid样例

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
  <!-- 基本属性 url、user、password -->
  <property name="url" value="${jdbc_url}" />
  <property name="username" value="${jdbc_user}" />
  <property name="password" value="${jdbc_password}" />
  <!-- 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时 -->
  <property name="initialSize" value="3" />
  <!-- 连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接 -->
  <property name="minIdle" value="3" />
  <!-- 连接池在同一时间能够分配的最大活动连接的数量 -->
  <property name="maxActive" value="15" />
  <!-- 获取新连接的等待超时的时间,单位毫秒 -->
  <property name="maxWait" value="60000" />
  <!-- 间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
  <property name="timeBetweenEvictionRunsMillis" value="60000" />
  <!-- 接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位毫秒 -->
  <property name="minEvictableIdleTimeMillis" value="120000" />
  <!-- 用来检测连接是否有效的sql -->
  <property name="validationQuery" value="SELECT 1" />
  <!-- 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。-->
  <property name="testWhileIdle" value="true" />
  <!-- 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。-->
  <property name="testOnBorrow" value="false" />
  <!-- 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 -->
  <property name="testOnReturn" value="false" />
  <!-- 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。
  在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。-->
  <property name="poolPreparedStatements" value="true" />
  <!-- 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。
  在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100 -->
  <property name="maxPoolPreparedStatementPerConnectionSize" value="100" />
  <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计,这个在有配置druid监控的时候开启 --> 
  <!-- property name="filters" value="stat" / -->
</bean>

c3p0样例

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
  <!-- 基本属性 url、user、password -->
  <property name="driverClass" value="${jdbc.driverClassName}" />
  <property name="jdbcUrl" value="${jdbc.url}" />
  <property name="user" value="${jdbc.username}" />
  <property name="password" value="${jdbc.password}" />
  <!-- 连接池中保留的最小连接数。-->
  <property name="minPoolSize" value="3" />
  <!-- 连接池中保留的最大连接数。-->
  <property name="maxPoolSize" value="15" />
  <!-- 初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间 -->
  <property name="initialPoolSize" value="3" />
  <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。-->
  <property name="acquireIncrement" value="3" />
  <!-- 连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位秒。若为0则永不丢弃。-->
  <property name="maxIdleTime" value="120" />
  <!-- 在空闲连接回收器线程运行期间休眠的时间值,以秒为单位 -->
  <property name="idleConnectionTestPeriod" value="60" />
  <!-- 用来检测连接是否有效的sql -->
  <property name="preferredTestQuery" value="select 1" />
  <!-- 定义在从数据库获取新连接失败后重复尝试的次数。-->
  <property name="acquireRetryAttempts" value="10" />
  <!-- 因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。
  建议使用idleConnectionTestPeriod方法来提升连接测试的性能。-->
  <property name="testConnectionOnCheckout" value="false" />
  <!-- c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能,通过多线程实现多个操作同时被执行 -->
  <property name="numHelperThreads" value="32" />
</bean>

 

 

 

分享到:
评论

相关推荐

    c3p0,dbcp,druid连接池

    c3p0-0.9.5.1,commons-dbcp-1.4,commons-pool-1.3,druid-1.0.26,junit-4.7等jar包,可供选择,一般在后期做项目的时候都离不开,必定会用到一个连接池,c3p0、或者阿里巴巴的druid、或者dbcp,dbcp很少用

    c3p0连接池jar包

    - 配置文件:通常使用`c3p0.properties`或在应用配置文件(如`application.properties`)中添加C3P0相关设置。 - 主要配置项: - `minPoolSize`:最小连接数。 - `maxPoolSize`:最大连接数。 - `...

    数据库连接池资源包(c3p0 , dbcp,druid连接池)

    3. **初始化连接池**:在Java代码中,通过配置文件加载连接池实例,如`c3p0.Configuraton`、`BasicDataSource`或`DruidDataSource`。 4. **获取和释放连接**:在需要操作数据库的地方,从连接池获取连接,执行完毕...

    Druid连接池以及C3P0

    本文将详细介绍两种广泛使用的数据库连接池——Druid和C3P0,以及它们的主要特点和使用场景。 **Druid连接池** Druid是由阿里巴巴开源的高性能、功能强大的数据库连接池。它不仅提供了基础的数据库连接池功能,还...

    常用数据库连接池 (DBCP、c3p0、Druid) 配置说明1

    本文主要探讨了三个常用的数据库连接池:DBCP、c3p0和Druid,以及它们的配置说明。 1. **DBCP(Apache Commons DBCP)** DBCP是Apache Commons项目的一部分,它依赖于Apache Commons Pool对象池机制来管理数据库...

    c3p0连接池插件

    与DBCP、Druid等其他连接池相比,c3p0在性能上有一定的优势,特别是在处理长时间无操作的连接时,其自动检测和恢复机制更为完善。但需要注意的是,c3p0的活跃度不如其他一些连接池,更新较慢,可能无法及时跟进最新...

    DBCP,C3P0,Druid连接池资料和jar包

    本资源包含了DBCP、C3P0和Druid三个主流的Java数据库连接池的资料和对应的jar包,下面将详细介绍这三个连接池及其特点。 1. **DBCP (Database Connection Pool)** DBCP是Apache Commons项目的一部分,它基于...

    druid连接池与C3P0连接池jar包.rar

    在Java世界里,有两个非常著名的数据库连接池实现:Druid和C3P0。下面我们将深入探讨这两个连接池的技术细节以及它们的特点。 首先,让我们来看看Druid连接池。Druid是由阿里巴巴开发的一款高性能的数据库连接池...

    C3P0连接池.zip

    C3P0连接池是一个广泛使用的Java数据库连接池实现,它允许程序在多个数据库操作之间重用数据库连接,从而提高应用程序的性能和效率。数据库连接池管理着数据库连接的创建、分配、回收和销毁,避免了频繁的创建和关闭...

    C3P0连接池的jar包 C3P0连接池的jar包 C3P0连接池的jar包

    了解并正确使用C3P0连接池对于Java应用的数据库优化至关重要。 1. **C3P0简介** - C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。 - C3P0的核心功能包括连接池的配置...

    JAVA数据库连接池(C3P0,Druid,JNDI ,DBCP,Proxool,BoneCP)

    本文将详细介绍几个常见的Java数据库连接池实现:C3P0、Druid、JNDI、DBCP、Proxool以及BoneCP,并结合Spring+MyBatis+maven环境下的应用示例进行解析。 1. C3P0: C3P0是一个开源的JDBC连接池,它实现了数据源和...

    开源数据库连接池c3p0

    相比其他流行的数据库连接池,如DBCP、HikariCP、Druid等,c3p0在某些方面可能稍显落后,例如性能和内存占用。但其丰富的配置选项和良好的兼容性仍使其在某些场景下成为不错的选择。例如,对于小型项目或对性能要求...

    三大连接池常用jar(c3p0,dbcp,druid)

    本文将详细介绍三大常用的数据库连接池——C3P0、DBCP和Druid,以及它们的主要特点和使用方法。 1. C3P0 C3P0是一个开源的JDBC连接池,由Miquel Catalan开发。它提供了全面的JDBC API支持,包括JDBC3规范和JDBC2的...

    java数据源连接池、dbcp连接和c3p0连接

    在Java应用中,除了DBCP和C3P0,还有其他流行的连接池实现,如HikariCP、Druid等。这些连接池各有特点,开发者可以根据项目需求选择最适合的解决方案。在开发过程中,了解并熟练使用连接池,对于提高Java应用的性能...

    druid、c3p0、dbcp-----jar包.zip

    本文将深入探讨三个著名的Java连接池库:Druid、C3P0和DBCP,以及它们对应的jar包。 首先,Druid是由阿里巴巴开源的一个高效、强大的数据库连接池实现。Druid的核心特性包括监控、扩展性、高性能和稳定性。它的监控...

    c3p0 还有其他连接池

    4. **性能优化**:c3p0支持连接池的配置参数调整,如最大连接数、最小连接数、空闲连接测试频率等,以适应不同应用的性能需求。 5. **异常处理**:c3p0能够检测到数据库连接的异常,并自动关闭损坏的连接,确保应用...

    连接池驱动包c3p0,DBCP,dbutils,druid-1.0.9

    本文将详细讲解四个常用的Java数据库连接池库:C3P0、DBCP、dbutils和Druid 1.0.9。 1. **C3P0**: C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的核心功能包括...

    c3p0数据库连接池所需jar包

    与DBCP、Druid等其他连接池相比,C3P0在连接管理上更加精细,提供了更多的配置选项。然而,由于其维护相对较少,对于最新的JDBC驱动和数据库版本可能存在兼容性问题。在选择数据库连接池时,需要根据项目需求和实际...

    c3p0连接池

    C3P0与其他流行的连接池,如HikariCP、DBCP、Druid等相比,各有优势。C3P0在稳定性方面表现出色,但相比HikariCP在性能上可能稍有逊色。而Druid则提供了更多的监控和诊断功能。 总的来说,选择合适的连接池应根据...

    DBCP、C3P0、Druid 第三方类库的jar包.zip

    标题中的"DBCP、C3P0、Druid 第三方类库的jar包.zip"指的是三个流行的Java数据库连接池管理工具的JAR文件集合。这些工具对于任何Java开发者,特别是那些构建基于数据库的应用程序的人来说,都是至关重要的。下面将...

Global site tag (gtag.js) - Google Analytics