1. 程式人生 > >配置資料庫連線池(資料來源)--------java利用BasicDataSource

配置資料庫連線池(資料來源)--------java利用BasicDataSource

DataSource又稱為資料來源,該類的目的是為了防止使用資料庫時不必要操作帶來的資源浪費,使用資料庫時需要進行資料庫連線,才可以使用資料庫,使用資料庫後,又要斷開連結,用來釋放資源。連結資料庫和斷開資料庫連線浪費資源,而且在頻繁操作資料庫的時候,如果按照沒有資料來源的方式進行使用,就要頻繁的連線資料庫,斷開資料庫連線,做了很多沒有必要的操作,即耽誤時間,又浪費資源。

那麼資料來源是怎麼做到不浪費資源的呢?

首先資料來源先建立了一個數據庫連線池,裡面可以自己自由設計資料庫連線池中連線的數量,當使用連線的時候直接在資料庫連線池中獲取,當不使用連線的時候不用斷開,直接放到資料庫連線池中,這就像是可回收垃圾一樣,用完進行回收,可再度利用,不會浪費資源。

那麼有人又想問,那麼多連線放在連線池中,一直處於連線狀態,是不是也是浪費資源呢?其實這是浪費資源的,但是咱們可以根據具體狀況來設定資料庫連線池中的連線數量,用來減少資料庫連線所帶來的資源浪費。

所以在建立資料來源的時候會有許多的引數,在這裡就不詳細介紹了,在程式碼裡在進行詳細的說明,每個引數的作用。

首先建立一個數據庫連線池。

在建立資料庫連線池的時候,咱們必須要匯入資料庫連線池的jar包,目前咱們暫時採用Apache公司提供的jar包進行測試,具體jar包下載位置,如果有人要可以在下面留言,也可以去官方網站進行下載,具體類為BasicDataSource。

程式碼如下:

import org.apache.commons.dbcp.BasicDatasource;
import javax.sql.DataSource;

public class DBCPUtils{
    private static final String DRIVERNAME ="com.mysql.jc.jdbc.Driver";
    private static final String URL = "job:mysql://localhost:3306/acompe";
    private static final String USER = "root";
    private static final String PASSWORD = "root";
    private static BasicDataSource dataSource = new BasicDataSource();
    static{
        dataSource.setDriverClassName(DRIVERNAME);
        dataSource.setUrl(URL);
        dataSource.setUsername(USER);
        dataSource.setPassword(PASSWORD);
        dataSource.setMaxActive(20);                    //設定最大連線數
        dataSource.setInitialSize(10);                  //設定初始化連線數
        dataSource.setMaxIdel(8);                       //當空閒下載的時候,連線最大數量
        dataSource.setMinIdle(5);                       //當空閒時間過長後,變為最小空閒
    }
    public static Datasource getDataSource(){
        return dataSource;
    }
}

程式碼中,變數全部定義為static,並且定義靜態程式碼塊,當有程式呼叫該函式的時候,首先初始化靜態程式碼塊,直接就可以生成靜態的dataSource,每次都可以直接通過該類獲取到資料來源,那麼資料來源獲取到之後,就可以通過資料來源獲取連線了。