Spring 配置 druid連接池 c3p0連接池


連接池配置臨時筆記



 <!-- 配置c3p0數據源 -->
 <bean id="dataSource_c3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource"
          destroy-method="close">
        <property name="driverClass" value="${jdbc.driverClass}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <!--連接池中保留的最小連接數。 -->
        <property name="minPoolSize" value="3"/>
        <!--連接池中保留的最大連接數。Default: 15 -->
        <property name="maxPoolSize" value="10"/>
        <!--初始化時獲取的連接數,取值應在minPoolSize與maxPoolSize之間。Default: 3 -->
        <property name="initialPoolSize" value="3"/>
        <!--最大空閒時間,60秒內未使用則連接被丟棄。若爲0則永不丟棄。Default: 0 -->
        <property name="maxIdleTime" value="60"/>
        <!--當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。Default: 3 -->
        <property name="acquireIncrement" value="3"/>
        <!--JDBC的標準參數,用以控制數據源內加載的PreparedStatements數量。
          但由於預緩存的statements 屬於單個connection而不是整個連接池。
          所以設置這個參數需要考慮到多方面的因素。
          如果maxStatements與maxStatementsPerConnection均爲0,則緩存被關閉。Default: 0 -->
        <property name="maxStatements" value="0"/>
        <!--每60秒檢查所有連接池中的空閒連接。Default: 0 -->
        <property name="idleConnectionTestPeriod" value="60"/>
        <!--定義在從數據庫獲取新連接失敗後重復嘗試的次數。Default: 30 -->
        <property name="acquireRetryAttempts" value="30"/>
        <!--獲取連接失敗將會引起所有等待連接池來獲取連接的線程拋出異常。
          但是數據源仍有效 保留,並在下次調用getConnection()的時候繼續嘗試獲取連接。
          如果設爲true,那麼在嘗試獲取連接失敗後該數據源將申明已斷開並永久關閉。Default: false -->
        <property name="breakAfterAcquireFailure" value="true"/>
        <!--因性能消耗大請只在需要的時候使用它。
          如果設爲true那麼在每個connection提交的時候都將校驗其有效性。
          建議使用idleConnectionTestPeriod或automaticTestTable等方法來提升連接測試的性能。Default: false -->
        <property name="testConnectionOnCheckout" value="false"/>
    </bean>




<!-- 阿里巴巴Druid連接池 -->
<bean id="dataSource_druid" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">

        <!-- 基本屬性 url、user、password   根據url自動識別dbType,不用配置driverClassName-->
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />

        <!-- 配置初始化大小、最小空閒、最大連接數-->
        <property name="initialSize" value="${druid.initialSize}" />
        <property name="minIdle" value="${druid.minIdle}" />
        <property name="maxActive" value="${druid.maxActive}" />

        <!-- 配置獲取連接等待超時的時間 單位毫秒 -->
        <property name="maxWait" value="60000" />

        <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連接,單位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="60000" />

        <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="300000" />

        <!-- 檢測連接是否有效的sql,要求是一個查詢語句 -->
        <property name="validationQuery" value="SELECT 'x'" />

        <!-- 建議配置爲true,不影響性能,並且保證安全性。申請連接的時候檢測,如果空閒時間大於timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。 -->
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" /> <!-- 申請連接時執行validationQuery檢測連接是否有效,不需要檢測-->
        <property name="testOnReturn" value="false" /> <!-- 歸還連接時執行validationQuery檢測連接是否有效,不需要檢測-->

        <!-- 打開PSCache,在mysql5.5以下的版本中沒有PSCache功能,建議關閉掉。5.5及以上版本有PSCache,建議開啓。 -->
        <property name="poolPreparedStatements" value="true" />
        <property name="maxPoolPreparedStatementPerConnectionSize" value="100" />

        <!-- 配置監控統計攔截的filters,去掉後監控界面sql無法統計 -->
        <property name="filters" value="stat" />

    </bean>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章