基本介绍:
1.预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕后再放回去
2.数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新创建一个
3.当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中
数据库连接池种类:
1.JDBC的数据库连接池使用javax.sql.DataSource来表示,DataSource只是一个接口,该接口通常由第三方提供实现
2.C3P0数据库连接池,速度相对较慢,稳定性不错
3.DBCP数据库连接池,速度相对C3P0较快,但不稳定
4.Proxool数据库连接池,有监控连接池状态的功能,稳定性较C3P0差一点
5.BoneCP数据库连接池,速度快
6.Druid是阿里提供的数据库连接池,集DBCP、C3P0、Proxool优点于一身的数据库连接池
C3P0:
public class C3P0_ {
@Test
//方式一:相关参数,在程序中指定user、url、password
public void test01() throws Exception{
//创建一个数据源对象
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
//通过配置文件获取相关信息
Properties properties = new Properties();
properties.load(new FileInputStream("src\\jdbc_\\mysql.properties"));
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String url = properties.getProperty("url");
String driver = properties.getProperty("driver");
//给数据源comboPooledDataSource设置相关参数
comboPooledDataSource.setDriverClass(driver);
comboPooledDataSource.setJdbcUrl(url);
comboPooledDataSource.setUser(user);
comboPooledDataSource.setPassword(password);
//设置数据源的连接数
comboPooledDataSource.setInitialPoolSize(10);//初始化连接数
comboPooledDataSource.setMaxPoolSize(50);//最大连接数
Connection connection = comboPooledDataSource.getConnection();
System.out.println("连接成功");
connection.close();
}
@Test
//方式二 使用配置文件模板来完成
public void test02() throws Exception{
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource("zdm");
Connection connection = comboPooledDataSource.getConnection();
System.out.println("连接成功");
connection.close();
}
}
Druid:
public class Druid_ {
@Test
public void testDruid() throws Exception{
Properties properties = new Properties();
properties.load(new FileInputStream("src\\druid.properties"));
//创建一个指定参数的数据库连接池
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
Connection connection = dataSource.getConnection();
System.out.println("连接成功");
connection.close();
}
}