Spring jdbctemplate是关闭连接所必需的

时间:2016-01-07 08:43:07

标签: spring jdbctemplate

我以下面的方式在jdbctemplate中获取连接: -

getJdbcTemplate().getDataSource().getConnection()

是否需要以上述方式关闭提取的连接? Spring JDBCTemplate API声明连接闭包将自动处理,因此我不确定这是否正确发生。

http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html

1 个答案:

答案 0 :(得分:2)

当您从DataSource获取JdbcTemplate并使用该Connection获取JdbcTemplate时,您基本上完全绕过了Connection。您现在有一种非常复杂的方式来获取新的Connection。因为这个连接不是由Spring管理的,所以你自己也需要关闭它并应用异常处理。

最好使用ConnectionCallback来获得JdbcTemplate。然后,Connection将管理getJdbcTemplate().execute(new ConnectionCallback<Void>() { public Void doInConnection(Connection conn) { // Your JDBC code here. } }); 并执行所有资源处理。

JdbcTemplate

最好使用其他{{1}}方法之一并编写适当的代码,这样可以避免使用简单的JDBC代码。