#c3p0連線池屬性檔案
# 四大基本資訊
c3p0.driverClass=com.mysql.jdbc.Driver
#這裡需要改成你自己的資料庫名稱 和 資料庫連線使用者名稱和密碼
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/資料庫名?useUnicode=true&characterEncoding=UTF-8&useSSL=false
c3p0.user=root
c3p0.password=root
# 初始化連線數 取值要在minPoolSize和maxPoolSize之間(可包含,閉區間) 預設值:3
c3p0.initialPoolSize=10
# 最大連線數 (連線池中的連線數不能超過maxPoolSize最大連線數) 預設值:15
c3p0.maxPoolSize=50
#最小連線數 預設值:3
c3p0.minPoolSize=5
#c3p0連線池中資料連線不夠時(無空閒連線可用),一次增長的個數(增長不能超過maxPoolSize最大連線個數) 預設值:3
c3p0.acquireIncrement=5
#連線的最大空閒時間,如果超過這個時間還沒有被使用,就斷開這個連線(設定為0或負數,就永遠都不會被斷開) 單位:秒 預設值 :0
c3p0.maxIdleTime=600
#從資料庫獲取新連線失敗後重復嘗試的次數。小於等於0表示無限次 預設值: 30
c3p0.acquireRetryAttempts=30
#兩次連線的中間間隔時間(重新嘗試的時間間隔) 單位:毫秒 預設值:1000
c3p0.acquireRetryDelay=1000
#連線關閉時,是否將所有未提交的操作進行事務回滾 預設值:false
c3p0.autoCommitOnClose = false
#當連線池用完時,使用者端呼叫getConnection()後等待獲取新連線的時間 單位:毫秒 預設值:0 (無限期等待) 按照設定的值,超時將丟擲SQLException異常
c3p0.checkoutTimeout = 0
#每隔多少秒檢查所有連線池中的空閒連線 單位:秒 預設值:0
c3p0.idleConnectionTestPeriod=60
#設定PreparedStatement快取,設定連線池為資料來源快取的PreparedStatement的總數,為0的時候不快取,同時maxStatementsPerConnection的設定無效。
# 由於PreparedStatement屬於單個Connection,所以這個數量應該根據應用中平均連線數乘以每個連線的平均PreparedStatement來計算
c3p0.maxStatements=1000
# 連線池為資料來源單個Connection快取的PreparedStatement數,這個設定比maxStatements更有意義,因為它快取的服務物件是單個資料連線,如果設定的好,肯定是可以提高效能的。為0的時候不快取。
# c3p0.maxStatementsPerConnection
#設定連線的生存時間,超過這個時間的連線將由連線池自動斷開丟棄掉。當然正在使用的連線不會馬上斷開,而是等待它close再斷開。設定為0的時候則不會對連線的生存時間進行限制。預設值0
#c3p0.maxConnectionAge
#這個設定主要是為了減輕連線池的負載,設定不為0,則會將連線池中的連線數量保持到minPoolSize,為0則不處理。
#maxIdleTimeExcessConnections
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 連線池4大元件 -->
<property name="driverClass" value="${c3p0.driverClass}"/>
<property name="jdbcUrl" value="${c3p0.jdbcUrl}"/>
<property name="user" value="${c3p0.user}"/>
<property name="password" value="${c3p0.password}"/>
<!--初始化連線數 取值要在minPoolSize和maxPoolSize之間(可包含,閉區間) 預設值:3 -->
<property name="initialPoolSize" value="${c3p0.initialPoolSize}"/>
<!-- 最大連線數 (連線池中的連線數不能超過maxPoolSize最大連線數) 預設值:15-->
<property name="maxPoolSize" value="${c3p0.maxPoolSize}"/>
<!--最小連線數 預設值:3 -->
<property name="minPoolSize" value="${c3p0.minPoolSize}"/>
<!-- c3p0連線池中資料連線不夠時(無空閒連線可用),一次增長的個數(增長不能超過maxPoolSize最大連線個數) 預設值:3 -->
<property name="acquireIncrement" value="${c3p0.acquireIncrement}"/>
<!-- 連線的最大空閒時間,如果超過這個時間還沒有被使用,就斷開這個連線(設定為0或負數,就永遠都不會被斷開) 單位:秒 預設值 :0 -->
<property name="maxIdleTime" value="${c3p0.maxIdleTime}"/>
<!-- 從資料庫獲取新連線失敗後重復嘗試的次數。小於等於0表示無限次 預設值: 30-->
<property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/>
<!-- 兩次連線的中間間隔時間(重新嘗試的時間間隔) 單位:毫秒 預設值:1000 -->
<property name="acquireRetryDelay" value="${c3p0.acquireRetryDelay}"/>
<!-- 連線關閉時,是否將所有未提交的操作進行事務回滾 預設值:false -->
<property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}"/>
<!-- 當連線池用完時,使用者端呼叫getConnection()後等待獲取新連線的時間 單位:毫秒 預設值:0
如果值設為 0,將無限期等待,直到有空閒連線。 否則按照設定的值,超時將丟擲SQLException異常
時間設定過小時會出現連線超時,這樣會丟擲SQLException異常,設定時間時需要小心,按照實際情況設定適當的值-->
<property name="checkoutTimeout" value="${c3p0.checkoutTimeout}"/>
<!-- 每隔多少秒檢查所有連線池中的空閒連線 單位:秒 預設值:0 -->
<property name="idleConnectionTestPeriod" value="${c3p0.idleConnectionTestPeriod}"/>
<!-- 設定PreparedStatement快取,設定連線池為資料來源快取的PreparedStatement的總數
為0的時候不快取,同時maxStatementsPerConnection的設定無效。
由於PreparedStatement屬於單個Connection,所以這個數量應該根據應用中平均連線數乘以每個連線的平均PreparedStatement來計算-->
<property name="maxStatements" value="${c3p0.maxStatements}"/>
</bean>
這種通過建立自己的連線池工具類使用
<c3p0-config>
<!-- c3p0連線池設定 -->
<default-config>
<!--預設是mysql資料庫-->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=UTF-8&useSSL=false</property>
<!-- 資料庫的使用者名稱 預設值:null -->
<property name="user">root</property>
<!-- 資料庫的密碼 預設值:null -->
<property name="password">861221293</property>
<!--初始化連線數 取值要在minPoolSize和maxPoolSize之間(可包含,閉區間) 預設值:3 -->
<property name="initialPoolSize">5</property>
<!-- 最大連線數 (連線池中的連線數不能超過maxPoolSize最大連線數) 預設值:15-->
<property name="maxPoolSize">50</property>
<!--最小連線數 預設值:3 -->
<property name="minPoolSize">10</property>
<!-- c3p0連線池中資料連線不夠時(無空閒連線可用),一次增長的個數(增長不能超過maxPoolSize最大連線個數) 預設值:3 -->
<property name="acquireIncrement">5</property>
<!-- 連線的最大空閒時間,如果超過這個時間還沒有被使用,就斷開這個連線(設定為0或負數,就永遠都不會被斷開) 單位:秒 預設值 :0 -->
<property name="maxIdleTime">600</property>
<!-- 從資料庫獲取新連線失敗後重復嘗試的次數。小於等於0表示無限次 預設值: 30-->
<property name="acquireRetryAttempts" value="30"/>
<!-- 兩次連線的中間間隔時間(重新嘗試的時間間隔) 單位:毫秒 預設值:1000 -->
<property name="acquireRetryDelay">1000</property>
<!-- 連線關閉時,是否將所有未提交的操作進行事務回滾 預設值:false -->
<property name="autoCommitOnClose">false</property>
<!-- 當連線池用完時,使用者端呼叫getConnection()後等待獲取新連線的時間 單位:毫秒 預設值:0
如果值設為 0,將無限期等待,直到有空閒連線。 否則按照設定的值,超時將丟擲SQLException異常
時間設定過小時會出現連線超時,這樣會丟擲SQLException異常,設定時間時需要小心,按照實際情況設定適當的值-->
<property name="checkoutTimeout">0</property>
<!-- 每隔多少秒檢查所有連線池中的空閒連線 單位:秒 預設值:0 -->
<property name="idleConnectionTestPeriod">60</property>
<!-- 設定PreparedStatement快取,設定連線池為資料來源快取的PreparedStatement的總數
為0的時候不快取,同時maxStatementsPerConnection的設定無效。
由於PreparedStatement屬於單個Connection,所以這個數量應該根據應用中平均連線數乘以每個連線的平均PreparedStatement來計算-->
<property name="maxStatements">1000</property>
</default-config>
</c3p0-config>