使用连接池时,应该在最后关闭连接吗?如果是这样,合并的目的就不会丢失吗?如果不是,那么DataSource如何知道何时释放Connection的特定实例并可以重用?我对此感到有些困惑,任何指针都表示赞赏。
是的,当然你也需要关闭池化连接。实际上,它是实际连接的包装。它可以在幕后将实际连接释放回池中。由池进一步决定实际的连接是实际上是关闭还是重新用于新
getConnection()呼叫。因此,无论是否使用连接池,都应始终以相反的顺序在获取它们
finally的
try块中关闭所有JDBC资源。在Java 7中,可以通过使用
try-with-resourcesstatement进一步简化此操作。
以下方法是否接近标准?看起来像是尝试从池中获取连接,并且如果无法建立
DataSource,请使用老式的DriverManager。我们甚至不确定哪个部分在运行时执行。重复以上问题,是否应该关闭这种方法发出的连接?
这个例子很可怕。你仅需要
DataSource在应用程序启动期间在整个应用程序范围的数据库配置类的某些构造函数/初始化中查找/初始化一次。然后,只需
getConnection()在应用程序的整个生命周期中调用一个相同的数据源即可。不需要同步也不需要nullchecks。



