为什么需要数据库连接池
前面我们是建立一次连接操作完成后就释放,对于用户来说,响应时间会比较慢,对于数据库来说每一次连接都需要TCP三次握手,四次挥手,连接多了就会给数据库造成很大的压力
有了数据库连接池后,在这个数据库连接池先提前准备好一些连接,那么等用户需要用到连接时,不用创建新的,从这个池中直接拿一个现成的。当用户用完后放回池中,给其他用户使用
Druid数据库连接池
Druid是阿里巴巴开源的数据库连接池
创建配置文件druid.properties
url=jdbc:mysql://192.168.160.131:3306/subquery?rewriteBatchedStatements=true
username=root
password=数据库密码
driverClassName=com.mysql.jdbc.Driver
initialSize=10
maxActive=20
maxWait=1000
使用代码如下 ```java package com.wisdom.datasource;
import java.sql.Connection; import java.util.Properties; import javax.sql.DataSource; import com.alibaba.druid.pool.DruidDataSourceFactory;
public class DataSourceTest { public static void main(String[] ars) throws Exception{ // 将配置文件加载到内存中 Properties pro = new Properties(); pro.load(DataSourceTest.class.getClassLoader().getResourceAsStream(“druid.properties”));
// 根据配置文件创建连接池
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
//从数据库连接池中拿连接
for (int i = 1; i <=30; i++) {
Connection conn = ds.getConnection();
System.out.println("第" + i +"个连接:" + conn);
Thread.sleep(1000);
// 调用close就代表将该连接归还到连接池中
conn.close();
}
}
}
```