Druid连接池的使用

@Test
public void test2() throws SQLException{
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/test");
dataSource.setUsername("root");
dataSource.setPassword("root");
dataSource.setInitialSize(10); //初始化连接数 默认为0
dataSource.setMaxActive(30); //最大连接数,默认8
dataSource.setMinIdle(10); //最小闲置数
dataSource.setMaxWait(2000); //获取连接的最大等待时间,单位毫秒
dataSource.setPoolPreparedStatements(true); //缓存PreparedStatement,默认false
dataSource.setMaxOpenPreparedStatements(20); //缓存PreparedStatement的最大数量,默认-1(不缓存)。大于0时会自动开启缓存PreparedStatement,所以可以省略上一句代码

dataSource.setValidationQuery("SELECT 1");//用来检测连接是否有效
dataSource.setTestOnBorrow(false);//申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
dataSource.setTestOnReturn(false);//归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
//申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
dataSource.setTestWhileIdle(true);//如果检测失败,则连接将被从池中去除
dataSource.setTimeBetweenEvictionRunsMillis(600000);


DruidPooledConnection connection = dataSource.getConnection();
System.out.println(connection);
connection.close();
}
posted @ 2021-02-24 13:18  year12  阅读(153)  评论(0编辑  收藏  举报