`
hwpok
  • 浏览: 251802 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring 下几种 连接池 的比较

阅读更多
hibernate开发组推荐c3p0,spring开发组推荐dbcp,但是dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法<!--startfragment --> reconnect ,告诉连接被重置,这个设置可以解决。hibernate in action推荐c3p0和proxool。

我推荐proxool,因为他不但可以监控后台。还可以有效的释放连接。在connection close时,也就是归还connection,
关闭所有的statement,并且判断是否autocommit,如果不行,就rollback,并且设置true,
可以参考proxool的org.logicalcobwebs.proxool.ConnectionResetter类
connection pool把connection reset置回initial state。
dbcp的配置
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${db.driverClassName}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>

 <property name="validationQuery">
<value>SELECT 1</value>
</property>
<property name="testOnBorrow">
<value>true</value>
</property>
</bean>

c3p0的配置,<!--startfragment --> 注意是''driverClass' , 'jdbcUrl', 'user' , 'password'

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass">
        <value>net.sourceforge.jtds.jdbc.Driver</value>
        </property>
        <property name="jdbcUrl">

<value>jdbc:jtds:sqlserver://localhost:1433/hua</value>
        </property>
        <property name="user">
        <value>sa</value>
        </property>
        <property name="password">
        <value>hua</value>
        </property>
        <property name="minPoolSize">
        <value>15</value>
        </property>
        <property name="acquireIncrement">
        <value>5</value>
        </property>
        <property name="maxPoolSize">
        <value>25</value>
        </property>
        </bean>

<bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
        destroy-method="close">
        <property name="driverClass">
            <value>${db.driverClass}</value>
        </property>
        <property name="jdbcUrl">
            <value>${db.url}</value>
        </property>
         <!--
        <property name="user">
            <value>${db.user}</value>
        </property>
        <property name="password">
            <value>${db.pass}</value>
        </property>
        -->
        <property name="properties">
            <props>
                <prop key="c3p0.acquire_increment">5</prop>
                <prop key="c3p0.idle_test_period">100</prop>
                <prop key="c3p0.max_size">100</prop>
                <prop key="c3p0.max_statements">0</prop>
                <prop key="c3p0.min_size">10</prop>
                <prop key="user">${db.user}</prop>
                <prop key="password">${db.pass}</prop>
            </props>
        </property>
    </bean>
xapool的配置
 <bean id="dataSource" class="org.enhydra.jdbc.pool.StandardPoolDataSource" destroy-method="stopPool">
    <constructor-arg index="0">
      <bean class="org.enhydra.jdbc.standard.StandardConnectionPoolDataSource">
        <property name="driverName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://localhost/dbname</value></property>
      </bean>
    </constructor-arg>
    <property name="user"><value>root</value></property>
    <property name="password"><value>mypass</value></property>
    <property name="minSize"><value>1</value></property>
    <property name="maxSize"><value>5</value></property>
    <property name="jdbcTestStmt"><value>select 1</value></property>
  </bean>
c-jdbc的配置
<bean id="dataSource" class="org.objectweb.cjdbc.driver.DataSource">
    <property name="url"><value>jdbc:cjdbc://127.0.0.1:25322/vdb?user=vuser</value></property>
  </bean>

weblogic的连接池解决办法:Test Reserved Connections: 如果选择了这个选项,服务器会在把连接提供给客户端之前
对其进行测试。 Test Created Connections: 如果选择了这个选项,就会在创建一个JDBC
连接之后和在把它添加到JDBC连接池中的可用连接列表之前,对该JDBC连接进行测试。

tomcat的jndi关于dbcp的配置:

<parameter>
         <name>factory</name>
         <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
       </parameter>
       <parameter>
         <name>driverClassName</name>
         <value>com.sybase.jdbc2.jdbc.SybDriver</value>
       </parameter>
       <parameter>
         <name>url</name>
         <value>xyz</value>
       </parameter>
       <parameter>
         <name>username</name>
         <value>xyz</value>
       </parameter>
       <parameter>
         <name>password</name>
         <value>xyz</value>
       </parameter>
       <parameter>
         <name>maxActive</name>
         <value>5</value>
       </parameter>
       <parameter>
         <name>maxIdle</name>
         <value>5</value>
       </parameter>
       <parameter>
         <name>maxWait</name>
         <value>-1</value>
       </parameter>
       <parameter>
         <name>removeAbandoned</name>
         <value>true</value>
       </parameter>
       <parameter>
         <name>validationQuery</name>
         <value>select count(*) from sometable where 1 = 0</value>
       </parameter>
       <parameter>
         <name>testOnBorrow</name>
         <value>true</value>
       </parameter>

proxool
<bean id="proxooldataSource" class="*.proxool.ProxoolDataSource" destroy-method="close">
      <property name="alias"><value>newstest</value></property>
      <property name="driver"><value>net.sourceforge.jtds.jdbc.Driver</value></property>
      <property name="driverUrl"><value>jdbc:jtds:sqlserver://127.0.0.1:1433/news<value></property>
      <property name="user"><value>sa</value></property>
      <property name="password"><value>1</value></property>
      <property name="houseKeepingSleepTime"><value>90000</value></property>
      <property name="prototypeCount"><value>5</value></property>
      <property name="maximumConnectionCount"><value>100</value></property>
      <property name="minimumConnectionCount"><value>10</value></property>
      <property name="trace"><value>true</value></property>
      <property name="verbose"><value>true</value></property>
    </bean>

分享到:
评论

相关推荐

    Spring下配置几种常用连接池

    本文将深入探讨如何在Spring环境下配置几种常用的数据库连接池,包括HikariCP、Druid和Apache DBCP2。 一、HikariCP HikariCP被誉为最快的Java数据库连接池,它的设计目标是提供最小的延迟和最大的并发性能。在...

    Spring下配置几种常用连接池及配置详解

    在《Spring下配置几种常用连接池.pdf》文档中,会详细阐述每种连接池的配置细节,包括更多可选参数和最佳实践。通过深入学习和实践,开发者可以更好地理解和运用这些连接池,优化数据库访问性能,提升整体应用的效率...

    Spring各种连接池的比较.doc

    本篇文章将深入探讨Spring支持的几种主要连接池,包括Apache DBCP、C3P0以及Proxool,并分析它们的特性、配置和适用场景。 首先,Apache DBCP(BasicDataSource)是Spring开发团队推荐的数据源,它是Apache Commons...

    spring连接池配置

    Spring框架提供了多种配置数据库连接池的方式,其中C3P0是一种广泛使用的开源连接池实现。本文将详细解析一个具体的Spring配置示例,通过分析`applicationContext.xml`文件中的配置项,帮助读者理解如何有效地配置C3...

    spring下的各种连接池的比较算法及代码程序.doc

    本篇文章将深入探讨Spring环境下几种常见的连接池实现,包括C3P0、DBCP以及Proxool,分析它们的特性、配置方法以及各自的优缺点。 1. **Apache DBCP (BasicDataSource)** DBCP是Apache Commons库中的一个数据源...

    Spring JDBCTemplate连接池jar包

    总之,Spring JDBCTemplate结合连接池提供了一个高效且易于使用的数据库访问层,它降低了数据库操作的复杂性,同时也提升了系统的性能。正确配置和使用这些库,可以极大地优化我们的数据库应用程序。

    JDBC数据源连接池的配置和使用示例

    常见的数据源连接池有以下几种: - C3P0:开源的JDBC连接池,提供了比JDBC更强大的功能,如自动检测死锁、自动重连等。 - DBCP:Apache的一个开源项目,基于Jakarta-pool实现,是Tomcat默认的数据源。 - HikariCP:...

    mysql连接池java源码

    MySQL连接池在Java应用开发中扮演着至关重要的角色,它是一种管理数据库连接的机制,能够有效地提高数据库操作的性能和效率。在这个项目中,我们看到的是一个纯手工编写的Java源码实现,不依赖任何外部数据库驱动,...

    jsp连接池配置器(自动配置连接池)

    连接池是一种资源管理技术,用于在多线程环境中高效地管理和重用数据库连接。在Java中,常见的连接池实现有Apache的DBCP、C3P0、HikariCP和Tomcat JDBC连接池等。它们通过预先创建并维护一定数量的数据库连接,避免...

    springboot连接池、动态配置多数据源连接池,特别适合大数据部门、数据中台服务的多数据源连接池.zip

    Spring Boot默认支持几种流行的数据库连接池,如HikariCP、Druid、Tomcat JDBC等。这些连接池都提供了高效的连接管理和资源优化。HikariCP以其高性能和低内存占用被广泛采用,而Druid则以其丰富的监控功能受到青睐。...

    数据库连接池

    数据库连接池是数据库管理中的一个重要概念,它是一种在应用程序中管理数据库连接的高效方式。数据库连接池通过预先创建并维护一定数量的数据库连接,避免了每次应用需要与数据库交互时频繁地建立和关闭连接,从而...

    C3P0连接池配置需要的jar包

    C3P0连接池是Java应用中常用的数据库连接池组件,它允许程序在不关闭物理连接的情况下,管理和重用数据库连接,从而提高了应用程序的性能和效率。C3P0库依赖于其他几个JAR包来实现其功能,包括`c3p0-0.9.2.1.jar`、`...

    spring整合数据库连接的几种方式

    选择哪种连接池取决于项目需求,如性能、稳定性、资源管理及监控功能等因素。在实际应用中,还需要根据具体数据库类型和版本,以及应用的并发量来调整连接池的各项参数,以达到最优的性能表现。

    数据库连接池c3p0jar包

    数据库连接池是Java开发中非常重要的一个组件,它在处理多线程环境下对数据库资源的高效利用和管理中起着关键作用。C3P0是一个开源的Java连接池实现,它提供了一种灵活且功能强大的数据库连接管理方式。在本文中,...

    poolman 数据库连接池

    **PoolMan数据库连接池**是Java环境中用于管理数据库连接的一种高效、可靠且可扩展的工具。连接池在软件设计中扮演着重要角色,特别是在高并发的Web应用中,通过复用已建立的数据库连接,避免了频繁创建和销毁连接...

    数据库连接池以及在代码中的应用

    数据库连接池是数据库管理中的重要概念,它是一种在应用程序中管理数据库连接的机制。通过连接池,可以有效地管理和重用数据库连接,减少频繁创建和关闭连接带来的开销,提高系统性能,并降低数据库服务器的压力。 ...

    数据库连接池基础知识_dbcp_c3p0_简单了解

    使用数据库连接池的步骤通常包括以下几点: 1. 添加依赖:在项目中引入DBCP或C3P0的库文件。 2. 配置连接池:设置数据库URL、用户名、密码、最大/最小连接数、超时时间等属性。 3. 创建DataSource对象:通过编程或...

Global site tag (gtag.js) - Google Analytics