JdbcTemplate手动释放Hikari连接池的连接

要用到HikariDataSource的close方法手动释放的,验证方法是使用MySQL的show processlist观察连接数的变化。主要代码示例如下:

    /**
     * 测试释放连接池的数据库连接
     */
    @Test
    public void testReleaseDBConnection() throws InterruptedException {
        HikariConfig config = new HikariConfig();
        config.setDriverClassName("com.mysql.jdbc.Driver");
        config.setJdbcUrl("jdbc:mysql://10.248.33.118:3306/db_mes_dw?allowMultiQueries=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&autoReconnect=true&failOverReadOnly=false");
        config.setUsername("root");
        config.setPassword("transsion#123456");
        config.addDataSourceProperty("cachePrepStmts", "true");
        config.addDataSourceProperty("prepStmtCacheSize", "1000");
        config.addDataSourceProperty("prepStmtCacheSqlLimit", "3000");
        JdbcTemplate jdbc = null;
        try {
            HikariDataSource dataSource = new HikariDataSource(config);
            jdbc = new JdbcTemplate(dataSource);
        } catch (Exception e) {
            //TODO: 存在部分数据库无法连接的情况
        }
        //为了方便观察连接数
        TimeUnit.MINUTES.sleep(1);
        HikariDataSource dataSource = (HikariDataSource) jdbc.getDataSource();
        dataSource.close();
        log.info("数据库连接关闭");
        TimeUnit.MINUTES.sleep(1);
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容