Spring框架将Connection对象传递给遗留代码

时间:2011-10-04 16:18:52

标签: java spring spring-jdbc

我正在使用Spring JDBC 3.0.6。我还有使用普通JDBC的遗留代码。遗留代码中有一些方法需要java.sql.Connection对象。我想从我的Spring代码中调用这个方法。如何传递java.sql.Connection对象?

如果我从数据源获取连接对象,那么我需要管理此连接的返回/释放。我是否可以只获取事务中的连接对象的引用。

我正在使用基于注释的配置和基于aop的声明性事务。

2 个答案:

答案 0 :(得分:6)

使用JdbcTemplate.execute(ConnectionCallback)。连接回调将有权访问连接,该连接由Spring自动打开,关闭并与当前事务相关联。

答案 1 :(得分:0)

使用DataSourceUtils.getConnection方法,这将检索与事务关联的连接。使用DataSourceUtils.releaseConnection释放它(如果连接是与事务关联的连接,则为noop。

如果遗留代码具有用于打开/关闭连接的util类 - 您可以修改它以使用DataSourceUtils函数。