什么是数据库连接池?
为数据库建立一个缓冲池,预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从缓冲池中拿出来一个使用即可,用完之后返还给缓冲池
为什么要有数据库缓冲池?
如果我们使用直连(用的时候创建连接,使用完之后关闭)的方式每次向数据库建立连接,用完之后关闭,这就就会消耗大量的资源和时间,数据库的连接资源并没有得到很好的重复利用。
获取数据库缓冲池的代码示例:
Java使用DataSource存放数据库连接池对象,而数据库缓冲池有很多种第三方的,我们这里使用的是阿里的Druid,阿里的数据库缓冲池性能较好
通过DruidDataSourceFactory.createDataSource(Properties pos);传递存放了数据库url,用户名,密码的Properties对象,创建连接池对象
properties文件:
initialSize代表的是初始化容量,就是说这个缓冲池中初始化时里边放多少个数据库连接对象
maxActive代表最大容量,代表该缓冲池中的数据库连接对象不允许超过这么多个
driverClassName指的是数据库驱动的全名,Druid通过加载这个类获取数据库驱动器
/**
* 基于Druid连接池获取数据库连接的工具类
*/
public class JdbcDruidUtils {
//连接池对象
private static DataSource ds;
static{
//加载Druid配置文件
FileInputStream fis;
try {
//获取读取Druid配置文件的输入流
fis = new FileInputStream("src/druid.properties");
//创建Properties对象
Properties pos = new Properties();
//加载Druid配置文件
pos.load(fis);
//获取连接池对象
ds = DruidDataSourceFactory.createDataSource(pos);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}