1. 相关概念:
概念:
是一个容器(集合), 存放数据库连接的容器.
当系统初始化好后, 容器被创建, 容器中会申请一些连接对象, 当用户来访问数据库时, 从容器中获取连接对象, 用户访问完之后, 会将连接对象归还给容器.
好处:
节约资源, 用户访问高效.
实现:
2. 相关实现:
Druid:
配置文件:
代码测试:
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.sql.Connection;
import java.util.Properties;
public class Druid_basic {
/**
* 数据库连接池druid的基本使用
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Properties ppts = new Properties();
ppts.load(Druid_basic.class.getResourceAsStream("/druid.properties"));
//获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(ppts);
Connection conn = ds.getConnection();
System.out.println(conn);
conn.close();
}
}
测试结果:
c3p0:
配置文件:
代码测试:
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
public class C3p0_basic {
public static void main(String[] args) throws Exception {
//1. 创建数据库连接池对象, 使用默认配置
//DataSource ds = new ComboPooledDataSource();
//2. 创建据库连接池对象, 使用指定配置
DataSource ds = new ComboPooledDataSource("otherc3p0");
//获取连接对象
for (int i = 0; i <= 10; i++) {
Connection conn = ds.getConnection();
System.out.println(i+1+": "+conn);
if (i == 5){
conn.close();//归还连接到连接池中
}
}
}
}
测试结果: