C3P0連接池參數配置

<!--acquireIncrement:鏈接用完了自動增量3個。 -->
    <property name="acquireIncrement">3</property>

    <!--acquireRetryAttempts:鏈接失敗後重新試30次。-->
    <property name="acquireRetryAttempts">30</property>
 
    <!--acquireRetryDelay;兩次連接中間隔1000毫秒。 -->
    <property name="acquireRetryDelay">1000</property>
 
    <!--autoCommitOnClose:連接關閉時默認將所有未提交的操作回滾。 -->
    <property name="autoCommitOnClose">false</property>
 
    <!--automaticTestTable:c3p0測試表,沒什麼用。-->
    <property name="automaticTestTable">Test</property>
 
    <!--breakAfterAcquireFailure:出錯時不把正在提交的數據拋棄。-->
    <property name="breakAfterAcquireFailure">false</property>
 
    <!--checkoutTimeout:100毫秒後如果sql數據沒有執行完將會報錯,如果設置成0,那麼將會無限的等待。 --> 
    <property name="checkoutTimeout">100</property>
 
    <!--connectionTesterClassName:通過實現ConnectionTester或QueryConnectionTester的類來測試連接。類名需制定全路徑。Default: com.mchange.v2.c3p0.impl.DefaultConnectionTester-->
    <property name="connectionTesterClassName"></property>
 
    <!--factoryClassLocation:指定c3p0 libraries的路徑,如果(通常都是這樣)在本地即可獲得那麼無需設置,默認null即可。-->
    <property name="factoryClassLocation">null</property>
 
    <!--forceIgnoreUnresolvedTransactions:作者強烈建議不使用的一個屬性。--> 
    <property name="forceIgnoreUnresolvedTransactions">false</property>
 
    <!--idleConnectionTestPeriod:每60秒檢查所有連接池中的空閒連接。--> 
    <property name="idleConnectionTestPeriod">60</property>
 
    <!--initialPoolSize:初始化時獲取三個連接,取值應在minPoolSize與maxPoolSize之間。 --> 
    <property name="initialPoolSize">3</property>
 
    <!--maxIdleTime:最大空閒時間,60秒內未使用則連接被丟棄。若爲0則永不丟棄。-->
    <property name="maxIdleTime">60</property>
 
    <!--maxPoolSize:連接池中保留的最大連接數。 -->
    <property name="maxPoolSize">15</property>
 
    <!--maxStatements:最大鏈接數。-->
    <property name="maxStatements">100</property>
 
    <!--maxStatementsPerConnection:定義了連接池內單個連接所擁有的最大緩存statements數。Default: 0  -->
    <property name="maxStatementsPerConnection"></property>
 
    <!--numHelperThreads:異步操作,提升性能通過多線程實現多個操作同時被執行。Default: 3--> 
    <property name="numHelperThreads">3</property>
 
    <!--overrideDefaultUser:當用戶調用getConnection()時使root用戶成爲去獲取連接的用戶。主要用於連接池連接非c3p0的數據源時。Default: null--> 
    <property name="overrideDefaultUser">root</property>
 
    <!--overrideDefaultPassword:與overrideDefaultUser參數對應使用的一個參數。Default: null-->
    <property name="overrideDefaultPassword">password</property>
 
    <!--password:密碼。Default: null--> 
    <property name="password"></property>
 
    <!--preferredTestQuery:定義所有連接測試都執行的測試語句。在使用連接測試的情況下這個一顯著提高測試速度。注意: 測試的表必須在初始數據源的時候就存在。Default: null-->
    <property name="preferredTestQuery">select id from test where id=1</property>
 
    <!--propertyCycle:用戶修改系統配置參數執行前最多等待300秒。Default: 300 --> 
    <property name="propertyCycle">300</property>
 
    <!--testConnectionOnCheckout:因性能消耗大請只在需要的時候使用它。Default: false -->
    <property name="testConnectionOnCheckout">false</property>
 
    <!--testConnectionOnCheckin:如果設爲true那麼在取得連接的同時將校驗連接的有效性。Default: false -->
    <property name="testConnectionOnCheckin">true</property>
 
    <!--user:用戶名。Default: null-->
    <property name="user">root</property>
 
    <!--usesTraditionalReflectiveProxies:動態反射代理。Default: false-->
    <property name="usesTraditionalReflectiveProxies">false</property>

 

在bean.xml下的配置如下:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
        <property name="jdbcUrl" value="jdbc:mysql:///hib_demo"></property>
        <property name="user" value="root"></property>
        <property name="password" value="root"></property>
        <property name="initialPoolSize" value="3"></property>
        <property name="maxPoolSize" value="10"></property>
        <property name="maxStatements" value="100"></property>
        <property name="acquireIncrement" value="2"></property>
    </bean>

在Java SE中的配置如下:

ComboPooledDataSource datasource = new ComboPooledDataSource();
			try {
				String[] strArr = str.split(",");
				datasource.setUser(strArr[2]);// 設置數據庫用戶名
				datasource.setPassword(strArr[3]);// 設置數據庫密碼
				datasource.setJdbcUrl("jdbc:oracle:thin:@//" + strArr[0] + ":1521/" + strArr[1]);// 設置數據連接地址
				datasource.setDriverClass("oracle.jdbc.OracleDriver");// 設置數據庫驅動
				datasource.setInitialPoolSize(50);// 連接池初始大小
				datasource.setMinPoolSize(10);// 連接池最小數目
				datasource.setMaxPoolSize(200);// 連接池最大數目
				datasource.setMaxIdleTime(600);// 連接對象最長空閒時間
				datasource.setMaxStatements(500);// 連接對象最大實例數
			} catch (Exception e) {
				e.printStackTrace();
			}

 

發佈了345 篇原創文章 · 獲贊 227 · 訪問量 142萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章