在利用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.BasicDataSour