Hibernate、SpringJDBC中在註解模式下獲取資料庫連線
阿新 • • 發佈:2019-01-06
<!--用apache的dbcp建立資料庫連線池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 使用者名稱-->
<property name="user" value="${username}"/>
<!-- 使用者密碼-->
<property name="password" value="${password}"/>
<property name="driverClass" value="${driver}"/>
<property name="jdbcUrl" value="${url}"/>
<!--連線池中保留的最大連線數。預設值: 15 -->
<property name="maxPoolSize" value="20"/>
<!-- 連線池中保留的最小連線數,預設為:3-->
<property name="minPoolSize" value="10"/>
<!-- 初始化連線池中的連線數,取值應在minPoolSize與maxPoolSize之間,預設為3-->
<property name="initialPoolSize" value="15"/>
<!-- 當連線池連線耗盡時,客戶端呼叫getConnection()後等待獲取新連線的時間,超時後將丟擲SQLException,如設為0則無限期等待。單位毫秒。預設: 0 -->
<property name="checkoutTimeout" value="3000"/>
<!--當連線池中的連線耗盡的時候c3p0一次同時獲取的連線數。預設值: 3 -->
<property name="acquireIncrement" value="2"/>
<!--定義在從資料庫獲取新連線失敗後重復嘗試的次數。預設值: 30 ;小於等於0表示無限次-->
<property name="acquireRetryAttempts" value="0"/>
<!--重新嘗試的時間間隔,預設為:1000毫秒-->
<property name="acquireRetryDelay" value="1000" />
<!--關閉連線時,是否提交未提交的事務,預設為false,即關閉連線,回滾未提交的事務 -->
<property name="autoCommitOnClose">
<value>false</value>
</property>
<!--如果為false,則獲取連線失敗將會引起所有等待連線池來獲取連線的執行緒丟擲異常,但是資料來源仍有效保留,並在下次呼叫getConnection()的時候繼續嘗試獲取連線。如果設為true,那麼在嘗試獲取連線失敗後該資料來源將申明已斷開並永久關閉。預設: false-->
<property name="breakAfterAcquireFailure">
<value>false</value>
</property>
<!--每60秒檢查所有連線池中的空閒連線。預設值: 0,不檢查 -->
<property name="idleConnectionTestPeriod"><value>60</value></property>
<!--c3p0全域性的PreparedStatements快取的大小。如果maxStatements與maxStatementsPerConnection均為0,則快取不生效,只要有一個不為0,則語句的快取就能生效。如果預設值: 0-->
<property name="maxStatements"><value>100</value></property>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 使用者名稱-->
<property name="user" value="${username}"/>
<!-- 使用者密碼-->
<property name="password" value="${password}"/>
<property name="driverClass" value="${driver}"/>
<property name="jdbcUrl" value="${url}"/>
<!--連線池中保留的最大連線數。預設值: 15 -->
<property name="maxPoolSize" value="20"/>
<!-- 連線池中保留的最小連線數,預設為:3-->
<property name="minPoolSize" value="10"/>
<!-- 初始化連線池中的連線數,取值應在minPoolSize與maxPoolSize之間,預設為3-->
<property name="initialPoolSize" value="15"/>
<!-- 當連線池連線耗盡時,客戶端呼叫getConnection()後等待獲取新連線的時間,超時後將丟擲SQLException,如設為0則無限期等待。單位毫秒。預設: 0 -->
<property name="checkoutTimeout" value="3000"/>
<!--當連線池中的連線耗盡的時候c3p0一次同時獲取的連線數。預設值: 3 -->
<property name="acquireIncrement" value="2"/>
<!--定義在從資料庫獲取新連線失敗後重復嘗試的次數。預設值: 30 ;小於等於0表示無限次-->
<property name="acquireRetryAttempts" value="0"/>
<!--重新嘗試的時間間隔,預設為:1000毫秒-->
<property name="acquireRetryDelay" value="1000" />
<!--關閉連線時,是否提交未提交的事務,預設為false,即關閉連線,回滾未提交的事務 -->
<property name="autoCommitOnClose">
<value>false</value>
</property>
<!--如果為false,則獲取連線失敗將會引起所有等待連線池來獲取連線的執行緒丟擲異常,但是資料來源仍有效保留,並在下次呼叫getConnection()的時候繼續嘗試獲取連線。如果設為true,那麼在嘗試獲取連線失敗後該資料來源將申明已斷開並永久關閉。預設: false-->
<property name="breakAfterAcquireFailure">
<value>false</value>
</property>
<!--每60秒檢查所有連線池中的空閒連線。預設值: 0,不檢查 -->
<property name="idleConnectionTestPeriod"><value>60</value></property>
<!--c3p0全域性的PreparedStatements快取的大小。如果maxStatements與maxStatementsPerConnection均為0,則快取不生效,只要有一個不為0,則語句的快取就能生效。如果預設值: 0-->
<property name="maxStatements"><value>100</value></property>
</bean>