在利用spring/ ssh /s2sh / ssi /s2si进行开发的过程中,一般情况下都会在spring的配置文件中进行数据源的配置,为了提高数据源的内存利用效率基本上都是会配置数据源连接池的。
在讲到连接池之前我们先看一下数据源直接连接数据库的配置,以下就是最简单的jdbc直接连接数据库的配置,它不会对我们获取连接、释放连接等进行优化,就和我们直接利用纯jdbc操作数据库一样,每一次的连接数据库、释放数据库连接都会消耗系统资源,如果用户量很大的话,这显然会消耗相当大的资源,所以一般上线运行的系统都是会已连接池的方式来优化处理数据源的。
<!-- 配置数据源dataSource jdbc方式连接数据源
-->
<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<propertyname="driverClassName"value="oracle.jdbc.driver.OracleDriver"/>
<property name="url"value="jdbc:oracle:thin:@168.9.202.49:1521:TEST" />
<propertyname="username" value="TEST"/>
<propertyname="password" value="TEST"/>
</bean>
下面就来了解一下数据库连接池的配置吧,一般而言,常用的数据库连接池有DBCP,C3P0, proxool,另外还有一个出道迟一些但是性能比前面这3个又一许多的连接池BoneCp。
DBCP是apache组织的一个开源的连接池项目,不过现在好像已经停止维护了,据说问题比较多,连接死锁问题比较严重。
C3P0是hibernate官方指定的数据库连接池工具,性能稳定,不过占用资源相对较多。
Proxool据说性能比从C3P0好一些,消耗资源也少。
BoneCp连接池网上有测试数据显示其运行效率可以达到C3P0、Proxool的25倍,并且稳定性也不错,所以被许多开发者推崇!但是要求jdk1.5+。
只可惜我的开发环境是基于jdk1.4的,所以对BoneCp无法测试了。
Proxool也没有测试,因为现在基本都是新的基于jdk1.5+的版本,有些版本说支持jdk1.4,但实际上好像是在jdk1.5+以后的版本编译打包的,配置测试没有通过。
下面我就给出spring中连接池的配置吧!
测试通过的连接池配置:
Dbcp:
<!-- 配置数据源dataSource dbcp连接池方式连接数据源
-->
<bean id="dataSource"class="org.apache.commons.dbcp.BasicDataSource">
<propertyname="url"
value="jdbc:oracle:thin:@168.9.202.49:1521:TEST"/>
<propertyname="driverClassName"value="oracle.jdbc.driver.OracleDriver" />
<propertyname="username" value="TEST" />
<propertyname="password" value="TEST" />
<property name="initialSize"value="1"/>
<propertyname="maxActive" value="500"/>
<propertyname="maxIdle" value="2"/>
<propertyname="minIdle" value="1"/>
</bean>
C3P0:
<!-- 配置数据源dataSourceC3P0连接池方式连接数据源
-->
<beanid="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close">
<propertyname="driverClass" value="oracle.jdbc.OracleDriver"/>
<propertyname="jdbcUrl" value="jdbc:oracle:thin:@168.9.202.49:1521:TEST"/>
<propertyname="user" value="TEST"
/>
<propertyname="password" value="TEST"
/>
<propertyname="acquireIncrement" value="5"
/>
<propertyname="acquireRetryAttempts"
value="10"
/>
<propertyname="acquireRetryDelay" value="3000"
/>
<propertyname="autoCommitOnClose" value="true"
/>
<propertyname="breakAfterAcquireFailure"
value="false"/>
<propertyname="checkoutTimeout"value="10000"
/>
<propertyname="initialPoolSize"value="6"
/>
<propertyname="maxIdleTime" value="10000"
/>
<propertyname="maxPoolSize" value="10"
/>
<propertyname="minPoolSize" value="1"
/>
<propertyname="maxStatements" value="0"
/>
<propertyname="numHelperThreads"value="3"
/>
<propertyname="propertyCycle" value="600"
/>
<propertyname="maxStatementsPerConnection"
value="0"
/>
</bean>
测试未通过:我相信这并不是配置的问题,因为没有找到适合于jdk1.4的版本。
Proxool:
<!-- 配置数据源dataSourceproxool连接池方式连接数据源
-->
<bean id="dataSource"class="org.logicalcobwebs.proxool.ProxoolDataSource"destroy-method="close">
<propertyname="driver" value="oracle.jdbc.driver.OracleDriver"></property>
<propertyname="driverUrl" value="jdbc:oracle:thin:@168.9.202.49:1521:TEST"></property>
<propertyname="user" value="TEST"></property>
<propertyname="password" value="TEST"></property>
<propertyname="alias" value="proxool4JMJL"></property>
<propertyname="jmx" value="false"></property>
<propertyname="trace" value="true"></property>
<propertyname="verbose" value="false"></property>
<propertyname="houseKeepingSleepTime"value="30000"></property>
<propertyname="houseKeepingTestSql" value="SELECTCURRENT_DATE FROM DUAL"></property>
<propertyname="testBeforeUse" value="true"></property>
<propertyname="testAfterUse" value="true"></property>
<propertyname="prototypeCount" value="5"></property>
<propertyname="maximumConnectionCount"value="400"></property>
<propertyname="minimumConnectionCount"value="10"></property>
<propertyname="statistics" value="1m,15m,1d"></property>
<propertyname="statisticsLogLevel" value="ERROR"></property>
<propertyname="maximumActiveTime" value="600000"></property>
<propertyname="simultaneousBuildThrottle" value="1600"></property>
</bean>
没有测试:
Bonecp:
<!-- 配置数据源dataSourcebonecp连接池BoneCP官方明确指出要求jdk
1.5+ -->
<bean id="bonecpDataSource"class="com.jolbox.bonecp.BoneCPDataSource"destroy-method="close">
<propertyname="driverClass" value=" oracle.jdbc.driver.OracleDriver " />
<propertyname="jdbcUrl" value=" jdbc:oracle:thin:@168.9.202.49:1521:TEST" />
<propertyname="username" value="TEST"/>
<propertyname="password" value="TEST"/>
<propertyname="idleConnectionTestPeriod" value="60"/>
<propertyname="idleMaxAge" value="240"/>
<propertyname="maxConnectionsPerPartition" value="30"/>
<propertyname="minConnectionsPerPartition" value="10"/>
<propertyname="partitionCount" value="3"/>
<propertyname="acquireIncrement" value="5"/>
<propertyname="statementsCacheSize" value="100"/>
<propertyname="releaseHelperThreads" value="3"/>
</bean>
以上是4种连接池的配置,如果你的开发环境是基于jdk1.5+的(现在基本上都是在jdk1.5+环境下开发了,像我的这种jdk1.4是属于10年前的古董了,局限性很大,许多java的新特性不能用到,感觉有时候真实被束缚住手脚了,不过没办法,这是公司的要求),那么配置那些东西都是不难的!
注意:配置数据库连接池需要把连接池的jar包放在项目的classpath(一般就放在lib下了)下一份,tomcat(我用的tomcat5.0,如果是其它的web容器那你自己试吧)的common\lib下一份,必须两者都放入jar包才可正常运行,否则那就
… …
分享到:
相关推荐
**JDBC数据源连接池配置与使用详解** 在Java Web应用中,数据库连接的管理是至关重要的。为了提高性能和资源利用率,开发人员通常会使用数据源连接池。本篇文章将详细讲解JDBC数据源连接池的配置和使用,以帮助你更...
本项目——"spring-boot-easy-connection-pool-master",主要探讨了如何在Spring Boot环境下配置和管理连接池,并且实现了动态配置多数据源的功能,这对于大数据部门和数据中台服务尤其重要。 首先,让我们深入理解...
本配置教程将详细解析如何进行数据源连接池的设置,以提升应用的效率和稳定性。 首先,我们来看"DBUtils.java",这是一个常见的数据库工具类,通常用于封装数据库操作。在Java中,DBUtils类可能包含初始化连接池、...
### Spring框架中C3P0连接池配置详解 在Java Web开发中,数据库连接管理是一项重要的任务。不当的连接管理可能会导致性能问题甚至系统崩溃。Spring框架提供了多种配置数据库连接池的方式,其中C3P0是一种广泛使用的...
当切换到C3P0时,首先引入了`PropertyPlaceholderConfigurer`来加载`jdbc.properties`文件,这样可以将敏感信息(如用户名、密码和连接池配置)存储在外部文件中,而不是硬编码在XML配置中。然后,配置了`...
在IT行业中,服务器应用的性能优化是至关重要的,而数据源连接池的配置则是其中的一环。本示例主要关注如何在Apache Tomcat服务器中配置数据源连接池,以提高数据库访问的效率和稳定性。Tomcat作为一个流行的Java ...
Druid连接池提供了一个内置的监控页面,通过监控配置可以让开发者获得数据库连接池、SQL监控、慢查询等性能指标,进而优化数据源的使用。 综上所述,通过上述关键知识点的实施,可以在Spring Boot应用中成功配置和...
在Spring框架中,数据库连接管理是非常关键的一部分,有效的连接池配置可以提高应用的性能和稳定性。本文将深入探讨如何在Spring环境下配置几种常用的数据库连接池,包括HikariCP、Druid和Apache DBCP2。 一、...
配置多个连接池意味着可以根据不同的业务需求,为不同的数据源设置不同的连接池,例如,对于读写频繁的操作可以配置高性能的连接池,而对于低频操作则可以选择更节省资源的连接池。这需要在`application.properties`...
Spring支持多种数据源配置方式,包括基本的JDBC数据源、连接池数据源以及事务管理策略等。下面将详细介绍Spring中常见的数据源配置及其相关知识点。 1. **基本JDBC数据源** Spring提供了一个名为`BasicDataSource`...
Spring Boot 2.x版本默认采用HikariCP作为其数据连接池,因为HikariCP以其高效和高性能著称。HikariCP通过使用Javassist库进行字节码操作,提高了性能,并使用了如FastList和ConcurrentBag等特殊集合类,以优化并发...
【jsp连接池配置器(自动配置连接池)】是一个实用工具,旨在简化开发人员在Java Web应用程序中配置数据库连接池的过程。通常,手动配置连接池需要编写大量的XML配置文件,如`context.xml`或`web.xml`,以及相关的Java...
总之,Spring数据源的配置涉及到多个方面,包括选择合适的数据源实现、配置连接参数、事务管理以及自动配置等。理解并掌握这些知识点,将有助于在实际开发中更好地管理数据库连接,提升系统性能。
这里我们将深入探讨连接池的概念,Spring框架中的数据源配置,以及Hibernate的集成,以及它们如何协同工作。 首先,连接池是一种资源管理技术,用于存储数据库连接。它预先创建一定数量的数据库连接,当应用需要时...
在实际应用中,开发者通常会在Spring框架中配置数据源,选择合适的连接池实现,如在Spring Boot项目中,可以通过YAML或properties配置文件设置连接池的相关参数: ```yaml spring: datasource: type: ...
本文将详细介绍如何在Spring MVC中整合Redis,并利用连接池来优化性能。 首先,我们需要引入Redis的相关依赖。在Maven项目中,可以在pom.xml文件中添加`spring-data-redis`和`jedis`库,这两个库分别提供了Spring对...
总结,Tomcat数据连接池的配置涉及到选择合适的连接池实现、添加依赖、配置Context文件以及在应用中使用数据源。正确配置和管理数据连接池能显著提升Web应用的性能,同时降低资源消耗,是每个Java开发者必备的技能之...
配置Tomcat JDBC连接池,需要在项目的lib目录下放置对应的jar文件,然后在web.xml或Spring配置文件中配置数据源。主要的配置项有最大连接数、最小连接数、超时时间等。 六、Spring Boot集成连接池 在Spring Boot...
Spring框架提供了一种灵活的方式来配置和管理多个数据源,使得这种需求变得简单易行。本文将详细介绍如何在Spring应用中配置多个数据源。 首先,我们来理解数据源(DataSource)的概念。数据源是Java中用于存储...
在描述中提到的“连接池配置文件”,通常是指像`proxoolconf.xml`这样的文件,其中包含了Proxool连接池的配置参数。这些参数包括但不限于: 1. **poolName**:唯一标识连接池的名称,方便管理和调试。 2. **...