连接池技术 & Druid
连接池技术
实际开发中 创建和销毁连接的时间 > 连接的使用时间
可以写个连接池提前存放好连接, web就会获取和回收连接即可, 这样大大节约了创建和销毁链接的性能消耗
DataSource接口: 规范了连接池获取连接的方法 / 规范了连接池回收连接的方法
Druid
使用步骤
1.创建连接池对象
2.设置连接池参数【必须和非必须】
3.获取连接 所有连接池都一样
4.回收连接 所有连接池都一样硬编码和软编码
硬编码&软编码
分别是将配置信息写在代码里和写在配置文件里
硬编码
/**
* 硬编码
* 直接使用代码设置连接池连接参数方式
* 步骤:
* 1.创建连接池对象
* 2.设置连接池参数【必须和非必须】
* 3.获取连接 所有连接池都一样
* 4.回收连接 所有连接池都一样
*/
public void testHard() throws SQLException {
//创建连接池对象
DruidDataSource dataSource = new DruidDataSource();
//设置参数
//必须设置的参数
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/shangguigujdbc");
dataSource.setUsername("root");
dataSource.setPassword("2333");
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
//非必须设置的参数
dataSource.setInitialSize(5);//初始化连接数量
dataSource.setMaxActive(10);//最大数量
//获取连接
Connection connection = dataSource.getConnection();
//数据库curd
//回收链接
connection.close();//连接池的close是回收
}
软编码
将信息写在外部配置文件中 druid.properties
driverClassName = com.mysql.cj.jdbc.Driver
username = root
password = 2333
url = jdbc:mysql://127.0.0.1:3306/shangguigujdbc
public void testSoft() throws Exception {
//1.读取外部配置文件
Properties properties = new Properties();
//src下的文件,可以使用类加载器提供的方法
InputStream ips = DruidUsePart.class.getClassLoader().getResourceAsStream("druid.properties");
properties.load(ips);
//2.使用连接池的工具类的工程模式,创建连接池
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
Connection connection = dataSource.getConnection();
//数据库crud
//回收连接
connection.close();
}