JDBC訪問MySQL資料庫(三)
阿新 • • 發佈:2020-11-29
JDBC訪問MySQL資料庫三
資料庫連線池
概念
連線池就是儲存我們資料庫連線物件的容器,系統初始化後,會去申請一些連線物件,使用者訪問資料庫時,回去容器中獲取資料庫連線物件,使用完畢後會歸還給容器。
資料庫連線池在初始化時將建立一定數量的資料庫連線池中,當應用程式訪問資料庫時並不是直接建立Connection,而是向連線池"申請"一個Connection。
C3P0
使用步驟:
- 匯入jar包
- 新增配置檔案:配置檔案為XML格式,預設名稱為c3p0-config.xml
- 獲取資料來源物件DataSource
- 通過DataSource獲取資料庫連線Connection
- 通過連線物件獲取PrepareStatement,執行sql語句
- 遍歷結果
- 關閉,釋放資源
第一步:匯入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();
}