如果您关闭已关闭的连接会发生什么?

时间:2015-06-12 14:58:32

标签: java jdbc database-connection

我正在阅读我的数据库访问逻辑,并发现可以连续两次关闭同一个连接。

除了作为重复指令之外,我是否有任何理由担心在关闭之后关闭连接?

2 个答案:

答案 0 :(得分:4)

如果您使用的是java.sql.Connection,则应该没有问题。

来自Connection documentation

  

在已关闭的Connection对象上调用close方法   是一个无操作。

即。它什么都不做。

这应该代表任何适当的实施。虽然可以想象某些实现在这个问题上有奇怪的行为。

答案 1 :(得分:1)

来自文档:

  

释放此Connection对象的数据库和JDBC资源   立即而不是等待它们自动释放。   在已关闭的Connection对象上调用close方法   是一个无操作。强烈建议明确应用程序   在调用close之前提交或回滚活动事务   方法。如果调用close方法并且存在活动状态   事务,结果是实现定义的。

所以简而言之,它应该什么都不做。请注意,此Connection接口的草率实现可能无法满足此接口合同中定义的规则。您没有说明您使用的是哪个数据库,因此我无法提供有关实施细节的更多信息。