[TOC]
## 問題01:數據庫連接池有什么作用?

## 問題02:數據庫連接池javax.sql.DataSource的重要API。
* JDBC提供了javax.sql.DataSource接口
* public static DataSource ds = null; **核心問題**
* Connection javax.sql.DataSource.getConnection()
## 問題03:數據庫連接池的手動實現。
* [ ] 使用線程安全的Vector容器存放Connection(C3P0使用的是LinkedList)
```
? private Vector<Connection> freeConn = new Vector<Connection>();
? ?private Vector<Connection> userConn = new Vector<Connection>();
? ?private static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();
```
[https://www.likecs.com/show-203938020.html](https://www.likecs.com/show-203938020.html)
## 問題04:DBCP數據庫連接池使用
### 1. 導入jar包

### 2. 數據庫信息配置

### 3. 初始化數據源
1. 使用配置文件
```
ds = BasicDataSourceFactory.createDataSource(prop);
```
2. 手動配置
```
public static DataSource ds = null;
static {
// 獲取DBCP數據庫連接池實現類對象
BasicDataSource bds = new BasicDataSource();
// 設置連接數據庫需要的配置信息
bds.setDriverClassName("com.mysql.cj.jdbc.Driver");
bds.setUrl("jdbc:mysql://localhost:3306/jdbc?serverTimezone=GMT%2B8");
bds.setUsername("root");
bds.setPassword("root");
// 設置連接池的初始化連接參數
bds.setInitialSize(5);
ds = bds;
}
```
### 4. 獲得數據源和連接
1. 獲得數據源
```
public static DataSource getDs() {
return ds;
}
```
2. 獲得連接
```
Connection conn = ds.getConnection();
```
## 問題05:c3p0數據庫連接池的使用
### 1. 導入jar包

### 2. 數據庫信息配置

### 3. 初始化數據源
> src根目錄下創建一個c3p0-config.xml文件
```
public static DataSource ds = new ComboPooledDataSource();
```

### 4. 獲得數據源和連接
同上
## 問題06:Druid數據庫連接池的使用
### 1. 導入jar包

### 2. 數據庫信息配置

### 3. 初始化數據源
```
ds = DruidDataSourceFactory.createDataSource(pro);
```
### 4. 獲得數據源和連接
同上
- 1課程概述
- 2環境配置
- 3MVC
- 3.1View
- 3.1.1前端基礎
- 3.1.2JSP語法
- 3.1.3JSP內置對象1
- 3.1.4JSP內置對象2
- 3.2Bean
- 3.3Controller
- 3.3.1Servlet
- 3.3.2Filter
- 3.3.3Listener
- 3.4EL&JSTL
- 4三層架構
- 4.1數據庫操作
- 4.1.1JDBC
- 4.1.2JDBC優化
- 4.2三層架構設計
- 4.3程序優化
- 4.3.1數據庫連接優化
- 4.3.2數據庫操作優化
- 4.4安全專題
- 4.4.1Ajax異步查詢
- 4.4.2CAPTCHA
- 4.4.3MD5&SHA
- 4.4.4Cookie
- 4.4.5分頁顯示
- 4.4.6文件上傳
- 4.4.7發送郵件
- 5企業級框架
- 5.0Maven
- 5.1MyBatis
- 5.2Spring
- 5.3SpringMVC
- 6實踐項目
- 6.1實驗1-用戶登錄(MVC)
- 6.2實驗2-訪問統計(Servlet高級)
- 6.3實驗3-三層架構
- 6.4實驗4-安全信息系統