C3p0数据库连接池的的配置

在项目开发过程中我们每次获取数据库的连接操作都要到数据库服务器获取连接connection,因为这很大程度上的增加数据库服务器的开销和增加了数据库的压力。因此我们在项目开发如果用到对数据库的操作就不得不用到数据库连接池提高效率,一般用到的数据库连接池是:C3p0的数据库连接,Dbcp数据库连接池等。下面介绍我最经常使用的数据库连接池C3p0,先来看看c3p0的文档上提供的例子:

<c3p0-config>
  <default-config>
    <property name="automaticTestTable">con_test</property>
    <property name="checkoutTimeout">30000</property>
    <property name="idleConnectionTestPeriod">30</property>
    <property name="initialPoolSize">10</property>
    <property name="maxIdleTime">30</property>
    <property name="maxPoolSize">100</property>
    <property name="minPoolSize">10</property>
    <property name="maxStatements">200</property>

    <user-overrides user="test-user">
      <property name="maxPoolSize">10</property>
      <property name="minPoolSize">1</property>
      <property name="maxStatements">0</property>
    </user-overrides>

  </default-config>

  <!-- This app is massive! -->
  <named-config name="intergalactoApp"> 
    <property name="acquireIncrement">50</property>
    <property name="initialPoolSize">100</property>
    <property name="minPoolSize">50</property>
    <property name="maxPoolSize">1000</property>

    <!-- intergalactoApp adopts a different approach to configuring statement caching -->
    <property name="maxStatements">0</property> 
    <property name="maxStatementsPerConnection">5</property>

    <!-- he's important, but there's only one of him -->
    <user-overrides user="master-of-the-universe"> 
      <property name="acquireIncrement">1</property>
      <property name="initialPoolSize">1</property>
      <property name="minPoolSize">1</property>
      <property name="maxPoolSize">5</property>
      <property name="maxStatementsPerConnection">50</property>
    </user-overrides>
  </named-config>
</c3p0-config>

通过上面的例子我们写一个c3p0的配置文件(c3p0-config.xml),注意必须是这样命名。

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <!-- 默认配置的数据源 -->
	<default-config>
	    <!-- 指定数据库的驱动 -->
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<!-- 指定数据库的连接URL -->
		<property name="jdbcUrl">jdbc:mysql:///onlinebuybook</property>
		<!-- 指定连接的用户和密码 -->
		<property name="user">root</property>
		<property name="password">root</property>
		<!-- 指定每次增长的连接数目 -->
		<property name="acquireIncrement">5</property>
		<!-- 指定初始化连接池中的连接数  -->
		<property name="initialPoolSize">10</property>
		<!-- 指定连接池中的最小连接数  -->
		<property name="minPoolSize">5</property>
		<!-- 指定连接池中的最大连接数 -->
		<property name="maxPoolSize">20</property>
	</default-config>
	<named-config name="mysql">
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="jdbcUrl">jdbc:mysql:///onlinebuybook_backup</property>
		<property name="user">root</property>
		<property name="password">root</property>
		<property name="acquireIncrement">5</property>
		<property name="initialPoolSize">10</property>
		<property name="minPoolSize">5</property>
		<property name="maxPoolSize">20</property>
	</named-config>
</c3p0-config>

我们可以看到数据库连接池的配置文件给mysql,oracle等数据库的访问提供了方便,带来了程序中对数据库访问的便利性。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值