为什么需要数据库连接池

  1. 前面我们是建立一次连接操作完成后就释放,对于用户来说,响应时间会比较慢,对于数据库来说每一次连接都需要TCP三次握手,四次挥手,连接多了就会给数据库造成很大的压力

  2. 有了数据库连接池后,在这个数据库连接池先提前准备好一些连接,那么等用户需要用到连接时,不用创建新的,从这个池中直接拿一个现成的。当用户用完后放回池中,给其他用户使用

Druid数据库连接池

  1. Druid是阿里巴巴开源的数据库连接池

  2. 创建配置文件druid.properties

    1. url=jdbc:mysql://192.168.160.131:3306/subquery?rewriteBatchedStatements=true
    2. username=root
    3. password=数据库密码
    4. driverClassName=com.mysql.jdbc.Driver
    5. initialSize=10
    6. maxActive=20
    7. maxWait=1000
  3. 使用代码如下 ```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();
    }
}

}

```