gpt4 book ai didi

java - JTDS 驱动程序 - 连接池与连接池

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:44:34 24 4
gpt4 key购买 nike

我已经离开 Java EE 有一段时间了,但我对所有这些东西都有一个基本的了解。

我在这里阅读 JTDS 文档:

http://jtds.sourceforge.net/features.html

它说它提供语句池和连接池,但不提供连接池实现。

  1. 前提是JTDS驱动本身提供了连接池,那为什么我需要一个连接池(比如 DBCP)在上面呢?
  2. 换句话说,那个连接有什么区别JTDS 提供的池,以及一个成熟的连接池实现(在这个 JTDS 文档页面的意义上)在上面是吗?
  3. 另外,语句池和连接池有什么区别(如本 JTDS 文档页面所述)?

请随时为您的答案添加更多详细信息
(任何你认为重要的;我没有明确询问的事情)
因为我对此很困惑。

最佳答案

据我从 API 文档中得知,它们意味着 jTDS 提供了一个 javax.sql.PooledConnection 和一个 javax.sql.ConnectionPoolDataSource 实现。这些类将由连接池使用 - 例如 - Java EE 应用程序服务器,而不是连接池本身。

ConnectionPoolDataSource 创建PooledConnection 对象,或者换句话说,它是 连接池的数据源。 PooledConnection 是物理连接的句柄,保存在连接池中。当用户请求连接池中的连接时,连接池将 PooledConnection 从“可用”列表移至“使用中”列表,并获得逻辑 java.sql.Connection 来自 PooledConnection。这种逻辑连接是交给用户的。

连接池可以使用PooledConnection 来监视逻辑连接。例如,当调用 close() 时,将 PooledConnection 返回“可用”状态,或者强行撤销逻辑连接并使其无效(例如,如果它使用时间过长)。

所以jTDS本身并没有连接池的实现,但是它有连接池的支持。不幸的是,JDBC 规范中的措辞如此困惑。

我在 a similar question 上对这个问题有更详细的回答。 .

关于java - JTDS 驱动程序 - 连接池与连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27970382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com