pet*_*rov 3 java jtds jdbc java-ee apache-commons-dbcp
我有一段时间远离Java EE,但我对所有这些东西都有一个基本的想法.
我在这里阅读JTDS文档:
http://jtds.sourceforge.net/features.html
它说它提供了语句池和连接池,但没有提供连接池实现.
随意添加更多细节到您的答案
(无论您发现什么重要;我没有明确询问的事情),
因为我对此非常困惑.
据我所知,从API文档中可以看出,它们意味着jTDS提供了javax.sql.PooledConnection一个javax.sql.ConnectionPoolDataSource实现.这些类将由连接池(例如Java EE应用程序服务器)使用,而不是连接池本身.
在ConnectionPoolDataSource创建PooledConnection对象,或者换言之,它是数据源为一连接池.它PooledConnection是物理连接的句柄,并保存在连接池中.当用户请求从池中的连接,连接池移动PooledConnection从"可用"到"使用"列表中,并获得一个逻辑java.sql.Connection从PooledConnection.这种逻辑连接是交给用户的.
在PooledConnection通过连接池可以用它来监视逻辑连接.例如,PooledConnection在close()调用时返回"可用" ,或者强制撤销逻辑连接并使其无效(例如,如果它使用时间太长).
因此jTDS本身没有连接池实现,但它支持连接池.遗憾的是,JDBC规范中的措辞令人困惑.
关于这个问题,我在类似问题上有更详细的答案.