開發者學堂課程【 JDBC 資料庫開發進階:c3p0 連接配接池的基本使用方式】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/32/detail/685c3p0 連接配接池的基本使用方式
内容介紹
1.c3p0 簡介
2.c3p0 的使用範例
是開元免費的連接配接池,比較受歡迎
2.c3p0 的使用範例:
package cn.bl.v4_DataSource.c3p0;
import java.sql.SQLException;
import org.junit.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class Demo1 {
/**
* 方式1:使用純Java方式
* @throws Exception
*/
@Test
public void test1() throws Exception {
ComboPooledDataSource source = new ComboPooledDataSource();
source.setDriverClass("com.mysql.jdbc.Driver");
source.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/aa?useUnicode=true&characterEncoding=utf-8");
source.setUser("root");
source.setPassword("000");
//擷取連結
System.out.println(source.getConnection());
/*輸出如下資訊(除了最後一行,前面的其實都是自動輸出的基本資訊):
九月 23, 2018 11:40:45 上午 com.mchange.v2.log.MLog
資訊: MLog clients using java 1.4+ standard logging.
九月 23, 2018 11:40:45 上午 com.mchange.v2.c3p0.C3P0Registry banner
}
@Test
public void test2() throws SQLException {
//1.空參--預設配置
ComboPooledDataSource ds = new ComboPooledDataSource();
//2.帶參--指定名稱的配置
//ComboPooledDataSource ds = new ComboPooledDataSource("BarryLee
System.out.println(ds.getConnection());
//輸出的資訊類似test1
}
/*
* 測試c3p0工具類
*/
@Test
public void testUtil() {
System.err.println(C3P0Utils.getConnection());
}
}
package cn.bl.v4_DataSource.c3p0;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0Utils {
private C3P0Utils() {}
private static ComboPooledDataSource ds = null;
private static ThreadLocaltLocal = new ThreadLocal<>();
static {
ds = new ComboPooledDataSource();//讀取預設配置檔案
}
public static DataSource getDataSource() {
return ds;
}
public static Connection getConnection() {
Connection con = tLocal.get();
if(con==null) {
try {
con = ds.getConnection();
tLocal.set(con);
} catch (SQLException e) {
e.printStackTrace();
}
}
return con;
}
}
