我为我的Web Spring-Boot Web应用程序提供了一个基于docker的解决方案。除数据库有时无法使用mySQL Workbench之类的客户端进行连接外,其他数据库都正常运行。它只是抛出一个错误,指出那里有太多连接。在我的应用程序中,我正在使用JDBCTemplate。我总是在最终主体中关闭连接。
问题:jdbcTemplate.getDataSource()。getConnection(); //根据官方文档,这是单身人士吗?
这是我的代码的示例:
try{
connection = jdbcTemplate.getDataSource().getConnection();
pst = connection.prepareStatement(sql);
pst.setInt(1,terminal_id);
nbDeletedRows = pst.executeUpdate();
}catch (SQLException e)
{
log.error("Some error has occurred with your query.",e);
}
finally {
SQLResourceHandler.closeResources(rs,connection,pst);
}
这是连接泄漏。
这里不要使用原始的jdbc,请改用jdbcTemplate方法。不要从数据源获得连接。 jdbcTemplate知道如何建立连接,而您不必这样做。也不要捕获异常。