mysql连接池 断开后自动重连
时间: 2023-07-05 08:06:05 浏览: 122
MySQL连接池可以使用一些开源的库来实现,如Druid、HikariCP、C3P0等。这些库都提供了连接池的常见功能,包括自动重连。
以Druid为例,Druid提供了配置参数`maxEvictableIdleTimeMillis`,该参数用于设置连接在连接池中闲置的最大时间,超过该时间的连接将被关闭。同时,Druid提供了配置参数`timeBetweenEvictionRunsMillis`,该参数用于设置定期检查连接是否已经过期的时间间隔。当定期检查发现连接已经过期时,Druid会自动重连。
下面是一个使用Druid连接池的例子:
```java
import com.alibaba.druid.pool.DruidDataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class ConnectionManager {
private static DruidDataSource dataSource;
static {
dataSource = new DruidDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost/test");
dataSource.setUsername("root");
dataSource.setPassword("root");
dataSource.setInitialSize(5);
dataSource.setMaxActive(10);
dataSource.setMaxWait(60000);
dataSource.setMinIdle(3);
dataSource.setMaxIdle(8);
dataSource.setTestOnBorrow(true);
dataSource.setValidationQuery("SELECT 1");
dataSource.setRemoveAbandoned(true);
dataSource.setRemoveAbandonedTimeout(1800);
dataSource.setLogAbandoned(true);
dataSource.setFilters("stat,wall");
dataSource.setMaxEvictableIdleTimeMillis(30000);
dataSource.setTimeBetweenEvictionRunsMillis(60000);
}
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
}
```
在上面的例子中,我们设置了`maxEvictableIdleTimeMillis`为30秒,即连接在连接池中闲置30秒以上的将被关闭。同时,我们设置了`timeBetweenEvictionRunsMillis`为60秒,即每隔60秒定期检查连接是否已经过期。当Druid检查到连接已经过期时,将自动重连。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)