如果抛出异常,Spring的JdbcTemplate会关闭连接吗?

时间:2011-02-23 20:48:07

标签: java spring exception-handling jdbctemplate

当Spring捕获到SQLException时,是否在抛出自己的DataAccessException(运行时)异常之前关闭了预准备语句,结果集和/或连接?

我有一个开发人员想要创建一个AOP方面来捕获这些异常并记录和/或关闭连接。

@AfterThrowing(pointcut="dataAccessOperation()", throwing="exception")
public void doRecoveryActions(JoinPoint thisJoinPoint, DataAccessException exception) {
     // log and/or close connection
}

2 个答案:

答案 0 :(得分:20)

这就是JdbcTemplate的全部意义 - 它处理所有类型的样板操作,包括释放所有资源。请参阅12. Data access with JDBC

答案 1 :(得分:0)

我认为您的开发人员应该考虑springs transaction managemant功能。您可以使用AOP来建议日志记录,回滚行为甚至retry或其他异常处理操作,以完全响应声明。