Spring 的 JdbcTemplate 是否在查询超时后关闭连接?

新手上路,请多包涵

我在带有插入语句的方法中设置了查询超时 (getJdbcTemplate().setQueryTimeout(5))。查询超时后会发生什么,jdbc 模板会关闭我的连接吗?

原文由 user3073662 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

简而言之,是的,它确实关闭了连接。长答案取决于它。

如果您没有 Spring 管理的事务,那么 JdbcTemplate 将调用 close() 上的方法 Connection 但是,如果由于 Springs 事务管理关闭连接而已经存在可用连接,则连接将由 Springs 事务支持处理,这反过来也会在 close() Connection

唯一的区别是当连接关闭但 close() 将被调用。

如果连接将实际关闭取决于使用哪个 DataSource ,通常在使用连接池时连接将返回到池而不是实际关闭连接。

原文由 M. Deinum 发布,翻译遵循 CC BY-SA 3.0 许可协议

是的,它确实。

如果连接是从连接池中获得的,它实际上不会关闭连接,而是将其发送回池中。

原文由 Abhishek Anand 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题