1. 程式人生 > >Java連線資料庫——使用C3P0資料來源連結資料庫

Java連線資料庫——使用C3P0資料來源連結資料庫

1、相關jar包,這裡需要3個jar包

2、具體連結資料庫程式碼

        ComboPooledDataSource類繼承自AbstractComboPooledDataSource類,且AbstractComboPooledDataSource類實現了PooledDataSource介面

ComboPooledDataSource常用方法

型別

方法和功能

void

setDriverClass(java.lang.String driverClass)

設定連線資料庫的驅動名稱

void

setJdbcUrl(java.lang.String jdbcUrl)

設定連線資料庫的地址

void

setUser(java.lang.String user)

設定連線資料庫的使用者名稱

void

setPassword(java.lang.String password)

設定連線資料庫的密碼

void

setInitialPoolSize(int initialPoolSize)

設定資料庫連線池初始化的連線數目

void

setMaxPoolSize(int maxPoolSize)

設定最大資料庫連線池的數量

void

setMinPoolSize(int minPoolSize)

設定最小資料庫連線池的數量

構造方法

ComboPooledDataSource()

ComboPooledDataSource(boolean autoregister)

ComboPooledDataSource(java.lang.String configName)

(1)、通過ComboPooledDataSource類直接建立資料來源物件

Example4.java

import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.SQLException;
public class Example4{
    public static DataSource dataSource = null;
    //初始化C3P0資料來源
    static {
        ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
        try{
            comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
            comboPooledDataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/chapter02");
            comboPooledDataSource.setUser("root");
            comboPooledDataSource.setPassword("1234");
            //初始化
            comboPooledDataSource.setInitialPoolSize(5);
            //設定最大的連結數
            comboPooledDataSource.setMaxPoolSize(15);
            dataSource = comboPooledDataSource;
        }catch (Exception e){
        }
    }
    public static void main(String[] args)throws SQLException {
        System.out.println(dataSource.getConnection());
    }
}

(2)、通過配置檔案建立資料來源物件

        在專案的src目錄下建立一個出c3p0-donfig.xml檔案

c3p0-donfig.xml內容如下

<?xml version="1.0" encoding="utf-8" ?>
<c3p0-config>
    <default-config>
        <property name="user">root</property>
        <property name="password">1234</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">
            jdbc:mysql://localhost:3306/chapter02
        </property>
        <property name="checkoutTimeout">30000</property>
        <property name="initialPoolSize">10</property>
        <property name="maxIdleTime">30</property>
        <property name="maxPoolSize">100</property>
        <property name="minPoolSize">10</property>
        <property name="maxStatements">200</property>
    </default-config>
    <named-config name="dongyao">
        <property name="initialPoolSize">5</property>
        <property name="maxPoolSize">15</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">
            jdbc:mysql://localhost:3306/chapter02
        </property>
        <property name="user">root</property>
        <property name="password">1234</property>
    </named-config>
</c3p0-config>

         其中<default-config>是預設配置,<named-config name=””>是自定義配置,一個配置檔案中可以有一個或者多個自定義配置,呼叫ComboPoolDataSource(String configName)方法傳入<named-config>節點中name屬性的值即可建立C3P0資料來源物件。

         在專案的src目錄下建立一個Example5的類

Example5.java

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.sql.SQLException;

public class Example5 {
    public static DataSource dataSource = null;
    static {
        ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource("dongyao");
        dataSource = comboPooledDataSource;
    }
    public static void main(String[] args) throws SQLException {
        System.out.println(dataSource.getConnection());
    }
}

3、控制檯顯示