1. 程式人生 > 資料庫 >JDBC訪問MySQL資料庫(三)

JDBC訪問MySQL資料庫(三)

JDBC訪問MySQL資料庫三

資料庫連線池

概念

連線池就是儲存我們資料庫連線物件的容器,系統初始化後,會去申請一些連線物件,使用者訪問資料庫時,回去容器中獲取資料庫連線物件,使用完畢後會歸還給容器。
資料庫連線池在初始化時將建立一定數量的資料庫連線池中,當應用程式訪問資料庫時並不是直接建立Connection,而是向連線池"申請"一個Connection。

C3P0

使用步驟:

  1. 匯入jar包
  2. 新增配置檔案:配置檔案為XML格式,預設名稱為c3p0-config.xml
  3. 獲取資料來源物件DataSource
  4. 通過DataSource獲取資料庫連線Connection
  5. 通過連線物件獲取PrepareStatement,執行sql語句
  6. 遍歷結果
  7. 關閉,釋放資源

第一步:匯入jar

使用C3P0需要匯入的包(2個)
c3p0-0.9.5.2.jar
mchange-commons-java-0.2.11.jar

注意別忘記匯入mysql驅動
mysql-connector-java-5.1.8.jar
在這裡插入圖片描述

第二步:新增配置檔案

在使用C3P0時,可以將資料庫配置寫到配置檔案中,C3P0預設會到src根目錄下載入名稱為c3p0-config.xml的xml檔案,

第三步:建立DataSource

讀取預設節點(節點配置的資訊)

DataSource cpds = new ComboPooledDataSource();

讀取指節點

DataSource cpds = new ComboPooledDataSource("myApp");

第四步:獲取Connection

獲取資料庫連線物件

Connection conn = cpds.getConnection();

第五步:獲取PrepareStatement執行SQL

獲取PreparedStatement執行sql語句

String sql = "SELECT * FROM user";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();

第六步:遍歷結果集

while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("username");
    String password = rs.getString("password");
    System.out.println(id + name + password);
}

第七步:釋放資源

ps.close();
conn.close();

完整程式碼

/**
 * 讀取配置檔案方式
 * 讀取配置檔案
 */
@Test
public static void t2() throws Exception {
    // 1. 匯入jar包
    // 2. 新建配置檔案,在src目錄下新建c3p0-config.xml檔案
    // 3. 建立資料DataSource物件
    DataSource cpds = new ComboPooledDataSource("myApp");

    // 4. 獲取 Connection 物件
    Connection conn = cpds.getConnection();
    // 5. 獲取 PreparedStatement,執行sql語句
    String sql = "SELECT * FROM user";
    PreparedStatement ps = conn.prepareStatement(sql);
    
    // 6. 遍歷結果集
    ResultSet rs = ps.executeQuery();
    while (rs.next()) {
        int id = rs.getInt("id");
        String name = rs.getString("username");
        String password = rs.getString("password");
        System.out.println(id + name + password);
    }
    // 7. 關閉資源
    ps.close();
    conn.close();
}