简单的归纳整理一下各种几种连接池的配置方式 以便查询
系统配置:spring2 , tomcat6 ,hibernate3,mysql
spring的版本比较低 各位看官不要笑话哦。
1.普通的JDBC连接方式
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value> jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8 </value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>000000</value> </property> </bean>
以上配置在JMeter 10个并发测试的时候 不用2分钟系统就挂掉了 此配置只建议开发使用 不要用在生成环境
2.JNDI
2.1.修改tomcat conf/context.xml 或sever.xml 具体使用方式各有区别请在咨询百度或谷歌
<Resource name="jdbc/TEST_Data" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="000000" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8" />
2.2.修改web.xml
<!-- datasource --> <resource-ref> <description>TEST</description> <res-ref-name>jdbc/TEST_Data</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
2.3 修改spring配置文件
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:comp/env/TEST_Data</value> </property> </bean>
使用此配置方式请务必将mysql的驱动放在tomcat/lib下面 不然启动会报错
3.c3po配置方式 (来自其他博客 http://hi.baidu.com/liuzhe041/item/52e7a10d1bb501e9f45ba6c1)
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"> <value>com.mysql.jdbc.Driver</value> </property> <property name="jdbcUrl"> <value>jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8 </value> </property> <property name="user"> <value>root</value> </property> <property name="password"> <value>000000</value> </property> <!--连接池中保留的最小连接数。 --> <property name="minPoolSize"> <value>5</value> </property> <!--连接池中保留的最大连接数。Default: 15 --> <property name="maxPoolSize"> <value>30</value> </property> <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 --> <property name="initialPoolSize"> <value>10</value> </property> <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --> <property name="maxIdleTime"> <value>60</value> </property> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="acquireIncrement"> <value>5</value> </property> <!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements 属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。 如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0 --> <property name="maxStatements"> <value>0</value> </property> <!--每60秒检查所有连接池中的空闲连接。Default: 0 --> <property name="idleConnectionTestPeriod"> <value>60</value> </property> <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --> <property name="acquireRetryAttempts"> <value>30</value> </property> <!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效 保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试 获取连接失败后该数据源将申明已断开并永久关闭。Default: false --> <property name="breakAfterAcquireFailure"> <value>true</value> </property> <!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable 等方法来提升连接测试的性能。Default: false --> <property name="testConnectionOnCheckout"> <value>false</value> </property> </bean>
以上三种方式都经过本次测试 可以正常使用 请各位看官自行调优。 其他方式持续更新中
相关推荐
本示例主要讲解如何在Tomcat6中结合JNDI(Java Naming and Directory Interface)和C3P0库来配置数据库连接池,这对于初学者理解Web应用服务器与数据库的交互方式具有很大帮助。 首先,C3P0是一个开源的JDBC连接池...
本文将深入探讨Tomcat连接池的配置,包括为什么要使用连接池、如何配置以及相关jar包和文档的使用。 一、连接池的概念 连接池是一种在应用程序启动时预创建一定数量的数据库连接,供多个线程共享使用的机制。当应用...
【描述】中的XML配置片段展示了在Spring框架中配置一个通过JNDI查找的数据源,这正是Tomcat统一配置C3P0连接池的一个关键步骤。`<bean id="dataSource2" class="org.springframework.jndi.JndiObjectFactoryBean">`...
例如,Tomcat、JBoss等应用服务器都支持JNDI配置C3P0、DBCP等连接池。 4. DBCP(Database Connection Pool): DBCP是Apache Commons的一个项目,基于Jakarta-pool实现的数据库连接池。它简单易用,但相比于C3P0和...
在Tomcat中,常见的连接池实现有Apache的DBCP、C3P0、HikariCP等。这里我们以HikariCP为例,因为它是目前公认的性能最佳的连接池实现。 1. **下载与添加依赖** - 首先,你需要下载HikariCP的JAR文件。如果`java-...
本文将详细介绍如何配置 BoneCP 连接池,以及对比C3P0的配置方法。 1. **BoneCP的基本概念与优势** - BoneCP 是一个开源的JDBC连接池实现,它通过高效的连接管理和复用来提高数据库操作的效率。 - 与C3P0相比,...
`Tomcat连接池`是Java应用服务器中用于管理数据库连接的一种机制,它的目的是提高...总的来说,理解和配置Tomcat连接池是Java Web开发中必不可少的技能,而性能测试则帮助我们确保应用在实际环境中能提供最佳的服务。
- 相比于Tomcat JDBC Connection Pool,c3p0更适合小型项目,大型项目可能会倾向于选择更高效、更活跃维护的连接池。 7. **常见问题与解决方案** - 如果出现“Too many connections”错误,可能是因为`maxPool...
2. 创建配置文件:在Tomcat的conf目录下创建c3p0.properties文件,设置连接池的相关参数,如初始连接数、最大连接数等。 3. 配置数据源:在web.xml中配置C3P0的数据源,包括数据库驱动、URL、用户名和密码等。 二、...
在Tomcat中,我们通常使用内置的连接池实现,如Apache Commons DBCP或C3P0。 **配置步骤:** 1. **添加依赖库**:在`$CATALINA_HOME/lib`目录下,我们需要添加对应的jar包文件,这可能包括`commons-dbcp.jar`...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,尤其是在企业级应用中,数据库连接池是不可或缺的一部分,因为它可以有效地管理和复用数据库连接,从而...
c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0由Miquel Llopis创建,因其高效、稳定和易用的特点,被广泛应用于各种Java Web应用中。下面我们将深入探讨c3p0连接池...
本示例将详细介绍如何使用DBCP(Database Connection Pool)、c3p0以及Tomcat内置的数据源来实现数据库连接池的配置与使用。 **DBCP(Database Connection Pool)** DBCP是Apache软件基金会的Jakarta项目下的一个子...
C3p0是一款开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,C3p0可以帮助我们管理数据库连接,提高数据库访问效率,减少系统资源的消耗。下面我们将详细探讨C3p0的...
【Tomcat连接池配置详解】 ...综上所述,Tomcat连接池配置涉及到JNDI、XML配置、应用代码等多个环节,正确配置可以显著提升应用的数据库访问性能和稳定性。理解并熟练掌握这些配置方法对于Java Web开发者来说至关重要。
【标题】:“Tomcat配置JNDI数据源” 【描述】:“在Tomcat服务器上配置JNDI...在实际开发中,还可以使用更高级的连接池实现,如C3P0、Apache DBCP2或HikariCP,它们提供了更多的性能优化选项和更好的连接管理功能。
以上是TOMCAT中常见的三种数据库连接池配置方法,包括Apache Commons DBCP、C3P0以及Tomcat内置的JDBC Pool。每种方式都有其特点和适用场景,开发者应根据实际需求选择合适的连接池组件,并进行相应的配置。正确配置...
在Tomcat中,我们通常使用Apache的DBCP(数据库连接池)或C3P0这样的第三方连接池实现。这里以常见的DBCP为例,配置步骤如下: 1. **添加依赖**: 首先,需要在项目的`pom.xml`文件中添加DBCP的依赖,或者将对应的...