报错信息:
Caused by: java.sql.SQLITransientConectionException: HikariPool-1 - Connection is not available, request timed aut after 6000ms.
原因:使用完数据库连接没有释放连接,导致连接池没有连接可用。
报错代码:
@Autowired
private DataSource dataSource;
// 每次get一个数据库连接
Connection conn = dataSource.getConnection();
解决办法:
import org.springframework.jdbc.datasource.DataSourceUtils;
import javax.sql.DataSource;
import java.io.*;
import java.sql.Connection;
@Autowired
private DataSource dataSource;
// 使用DataSourceUtils获取数据库连接
Connection conn = DataSourceUtils.getConnection(dataSource);
try{
// 业务代码xxx
} catch (Exception e) {
log.error(e.getMessage(), e);
} finally {
// 每次使用完释放数据库连接
DataSourceUtils.releaseConnection(conn, dataSource);
}