C3P0 ComboPooledDataSource getConnection() 总是 return 有效连接吗?

Will C3P0 ComboPooledDataSource getConnection() always return valid Connection?

该方法的 return 可能值是多少?

  1. 空?
  2. 无效连接?

问题是我是否应该检查 returned 连接是否为空或有效?或者我应该只捕获 SQLException?如果没有抛出 SQLException,returned 连接是否总是有效?

根据我的经验(以及 DataSource 的 javadoc),此方法将为您 return 一个已连接的连接,您可以使用它来查询您的数据库。如果池耗尽,方法将阻塞,直到连接可用。

万一 客舱压力 数据库连接丢失,这些错误将在您的整个应用程序中发生。如果你想在结账时/定期检查你的连接 - c3p0 有配置选项可以为你做这件事。

有关配置选项,请参阅 http://www.mchange.com/projects/c3p0/#testConnectionOnCheckout