问题最终是一些遗留代码,这些代码将多个方法链接在一起,其中该方法位于创建连接的中间-
因此,从未分配连接(很难发现),也从未关闭连接。这段代码是间接加载的,我错误地怀疑我的Hibernate / Spring配置有问题。
如果遇到类似问题,请警惕以下代码行:
connectionManager.getConnection().prepareStatement(..).<whatever>
调用getConnection()可能会打开一个新连接,并且该准备连接或已准备好的语句都需要更改才能关闭。

问题最终是一些遗留代码,这些代码将多个方法链接在一起,其中该方法位于创建连接的中间-
因此,从未分配连接(很难发现),也从未关闭连接。这段代码是间接加载的,我错误地怀疑我的Hibernate / Spring配置有问题。
如果遇到类似问题,请警惕以下代码行:
connectionManager.getConnection().prepareStatement(..).<whatever>
调用getConnection()可能会打开一个新连接,并且该准备连接或已准备好的语句都需要更改才能关闭。