com.mchange.v2.c3p0.ComboPooledDataSource


com.mchange.v2.c3p0.ComboPooledDataSource:數據庫連接池的一種

C3P0是一個開放源代碼的JDBC連接池,它在lib目錄中與Hibernate一起發布,包括了實現jdbc3和jdbc2擴展規范說明的Connection 和Statement 池的DataSources 對象。 

1.需要的jar包:c3p0-0.9.1.2.jar

1 <dependency>
2     <groupId>c3p0</groupId>
3     <artifactId>c3p0</artifactId>
4     <version>0.9.1.2</version>
5 </dependency>

2.ComboPooledDataSource連接數據庫方式:

(1)代碼連接:

 1 public class TestCombo{
 2     private ComboPooledDataSource dataSource;    private TestCombo() {
 3         try {
 4             dataSource = new ComboPooledDataSource();
 5             dataSource.setUser(root);
 6             dataSource.setPassword(123456);
 7             dataSource.setJdbcUrl(jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8");
 8             dataSource.setDriverClass(com.mysql.jdbc.Driver);
 9             dataSource.setInitialPoolSize();
10             dataSource.setAcquireIncrement();
11             dataSource.setMinPoolSize();
12             dataSource.setMaxPoolSize();
13             dataSource.setMaxStatements();
14             dataSource.setMaxIdleTime();
15             dataSource.setIdleConnectionTestPeriod();
16             dataSource.setAcquireRetryAttempts();
17 
18         } catch (Exception e) {
19             throw new RuntimeException(e);
20         }
21     }
22 
23   
24     public Connection getConnection() {
25         try {
26             return dataSource.getConnection();
27         } catch (Exception e) {
28             throw new RuntimeException("can not get sms database connection  ", e);
29         }
30     }
31 
32 }
33 --------------------- 
34 作者:chenpuzhen 
35 來源:CSDN 
36 原文:https://blog.csdn.net/chenpuzhen/article/details/80610044 
37 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

(2)配置文件連接:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--destroy-method="close"的作用是當數據庫連接不使用的時候,就把該連接重新放到數據池中,方便下次使用調用. -->                      
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" >
        <property name="driverClass" value="${database.driver}" />
        <property name="jdbcUrl" value="${database.url}" />
        <property name="user" value="${database.username}" />
        <property name="password" value="${database.password}" />
        <property name="loginTimeout" value="3000"></property>
         <!--checkoutTimeout從池中拿未使用的連接,超時設置,如果沒有設置,就不超時. -->
        <property name="checkoutTimeout" value="30000"></property>
        <property name="preferredTestQuery" value="select 1 from dual"></property>
         <!--每18000秒檢查所有連接池中的空閑連接。Default: 0 -->
        <property name="idleConnectionTestPeriod" value="18000"></property>
         <!--testConnectionOnCheckout:如果設置為true,每次從池中取一個連接,將做一下測試,使用automaticTestTable 或者 preferredTestQuery,做一條查詢語句.看看連接好不好用,不好用,就關閉它,重新從池中拿一個. -->
        <property name="testConnectionOnCheckout" value="true"></property>
         <!--連接池中保留的最小連接數。-->   
        <property name="minPoolSize" value="5"></property>
        <!--連接池中保留的最大連接數。--> 
<property name="maxPoolSize" value="100"></property> <!-- 初始化池大小 --> <property name="initialPoolSize" value="10"></property> <!--當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。 --> <property name="acquireIncrement" value="5"></property> <!--從數據庫獲取新連接失敗后重復嘗試的次數。Default: 30 --> <property name="acquireRetryAttempts" value="30"></property> <property name="acquireRetryDelay" value="1000"></property> <!--最大空閑時間,3600秒內未使用則連接被丟棄。若為0則永不丟棄。--> <property name="maxIdleTime" value="3600"></property> </bean> <!--另一數據庫連接 --> <bean id="dataSourceQuas" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" > <property name="driverClass" value="${quas.database.driver}" /> <property name="jdbcUrl" value="${quas.database.url}" /> <property name="user" value="${quas.database.username}" /> <property name="password" value="${quas.database.password}" /> <property name="loginTimeout" value="3000"></property> <property name="checkoutTimeout" value="30000"></property> <property name="preferredTestQuery" value="select 1 from dual"></property> <property name="idleConnectionTestPeriod" value="18000"></property> <property name="testConnectionOnCheckout" value="true"></property> <property name="minPoolSize" value="5"></property> <property name="maxPoolSize" value="100"></property> <property name="initialPoolSize" value="10"></property> <property name="acquireIncrement" value="5"></property> <property name="acquireRetryAttempts" value="30"></property> <property name="acquireRetryDelay" value="1000"></property> <property name="maxIdleTime" value="3600"></property> </bean> <bean id="dataSourceCtps" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" > <property name="driverClass" value="${ctps.database.driver}" /> <property name="jdbcUrl" value="${ctps.database.url}" /> <property name="user" value="${ctps.database.username}" /> <property name="password" value="${ctps.database.password}" /> <property name="loginTimeout" value="3000"></property> <property name="checkoutTimeout" value="30000"></property> <property name="preferredTestQuery" value="select 1 from dual"></property> <property name="idleConnectionTestPeriod" value="18000"></property> <property name="testConnectionOnCheckout" value="true"></property> <property name="minPoolSize" value="5"></property> <property name="maxPoolSize" value="100"></property> <property name="initialPoolSize" value="10"></property> <property name="acquireIncrement" value="5"></property> <property name="acquireRetryAttempts" value="30"></property> <property name="acquireRetryDelay" value="1000"></property> <property name="maxIdleTime" value="3600"></property> </bean> </beans>

 (3)資源文件設置數據庫相關值:database.properties

 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM