【问题标题】:How to get current Connection object used by jdbcTemplate如何获取 jdbcTemplate 使用的当前 Connection 对象
【发布时间】:2017-11-26 13:38:18
【问题描述】:

我正在寻找一种方法来拦截 JDBCTemplate 在内部创建的连接,即当函数 getConnection() 被 JDBCTemplate 调用时创建的连接。

ex:如果我使用jdbcTemplate.update(query);,我想获取用于完成此更新语句的连接信息。有没有办法查看连接中间或执行此语句后的元数据?我正在使用 C3P0 连接池。

许多人建议使用 DataSourceUtils.getConnection() ,但这只是从池中获取新连接并不能解决我的问题。

这个帖子也有效地提出了同样的问题:How to get current Connection object in Spring JDBC

【问题讨论】:

标签: java spring jdbc spring-jdbc jdbctemplate


【解决方案1】:
jdbcTemplate.getDataSource().getConnection();

通过使用上面的代码,我们可以获取连接对象。

【讨论】:

  • 这将返回 a 连接,但这会是 jdbcTemplate 用于其下一个操作的相同连接吗?
  • 如果通过这种方式获取连接,会产生连接泄漏,所以必须手动关闭。如果您使用 DataSourceUtils.getConnection() 并且您处于 spring 事务上下文中,您将获得与调用 jdbcTemplate 时相同的事务。
猜你喜欢
  • 2012-01-15
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
  • 2017-05-02
相关资源
最近更新 更多