JDBC C3P0 数据源配置

 

 c3p0官网:https://github.com/swaldman/c3p0

 

  <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
              
            <property name="driverClass" value="com.mysql.jdbc.Driver"/>
            <property name="jdbcUrl" value="jdbc:mysql://IP:PORT/DB?useUnicode=true&amp;characterEncoding=utf8"/>
            <property name="user" value="root"/>
            <property name="password" value="root"/>

        <!--连接池中初始化时建立的连接数-->
            <property name="initialPoolSize" value="20"/>
        <!--连接池中无可用连接时,一次性获取连接数-->
            <property name="acquireIncrement" value="5"/>
        <!--连接池中最大连接数-->
            <property name="maxPoolSize" value="100"/>
        <!--最大空闲时间,单位:秒,超过30秒未使用则连接设为过期,在空闲检查执行之后会被移出连接池。若为0则永不过期。Default: 0 -->
          <property name="maxIdleTime" value="30"/>
        <!--空闲连接检查时间周期,单位:秒,0为不执行检查。Default: 0 -->
          <property name="idleConnectionTestPeriod" value="300"/>
        <!-- 连接池中最少连接数,当连接数==最少连接数,即便有空闲连接,也不移出连接-->
          <property name="minPoolSize" value="10"/>
        <!-- 从连接池中获取连接的超时时间 ,单位:毫秒,超时后会报错,0为一直等待,默认为0 -->
          <property name="checkoutTimeout" value="1000"/>
        <!-- 连接池中,Statement被缓存的最大值,以便下次使用时直接取出-->
        <property name="maxStatements" value="2000"/>
        <!-- 连接池中,每一个连接缓存Statement的最大值,以便下次使用时直接取出-->
        <property name="maxStatementsPerConnection" value="20"/>
        <!--获取连接失败时,重试次数,默认值:30-->
        <property name="acquireRetryAttempts" value="99999"/>
        <!--获取连接失败,重试获取连接的时间间隔,单位:毫秒,默认值:1000-->
        <property name="acquireRetryDelay" value="10000"/>
        <!--连接关闭时,未提交的,自动提交,默认值为:false,即为回滚事务-->
        <property name="autoCommitOnClose" value="true"/>
        <!--数据库表名,通过查询(select * from 表名)测试数据库连接是否正常,已存在该表,则不能有数据,不存在该表,C3PO会建表-->
        <property name="automaticTestTable" value="C3P0_CONNECT_TEST"/>
        <!--定义一个查询SQL,用于数据库连接是否正常,如果定义了automaticTestTable属性,本属性被忽略-->
        <property name="preferredTestQuery" value=" select 1 from dual"/>
        <!--当连接被添加到连接池后,测试连接的可用性,默认值:false-->
        <property name="testConnectionOnCheckin" value="true"/>
        <!--如果设置为true,每次从池中取一个连接,将做一下测试,使用automaticTestTable 或者 preferredTestQuery,做一条查询语句.看看连接好不好用,不好用,就关闭它,重新从池中拿一个.-->
        <property name="testConnectionOnCheckout" value="false"/>
        <!--true:当获取连接出现异常时,标识连接池不可用,并不再重试连接数据库-->
        <!--false: 当获取连接出现异常时,下次被调用时继续获取连接-->
        <property name="breakAfterAcquireFailure" value="false"/>
        <!--连接的最长存活时间,单位:秒-->
        <property name="maxConnectionAge" value="3600"/>
        <!--连接未返回给连接池的超时时间,一般用于应用未关闭连接,长期占用时处理-->
        <property name="unreturnedConnectionTimeout" value="60"/>
    </bean>

猜你喜欢

转载自java12345678.iteye.com/blog/2262534
今日推荐