当前位置: 首页 > 知识库问答 >
问题:

连接池、jdbc和jndi的区别

唐烨煜
2023-03-14

我需要知道我对上面的理解是否正确。

在连接池中,可以使用java.sql.DataSource设置多个连接。

jdbc中,我们直接指定连接url和oracle.jdbc.driver.OracleDriver并且它总是一个连接,另一个请求必须等待到连接完成处理。

使用JNDI与直接jdbc类似,我们通过名称引用jdbc设置,这样我们就可以在应用服务器中指定连接url和其他设置,而不是将它们绑定到应用程序,对吗?

共有1个答案

谢奇略
2023-03-14

这是两码事。

JDBC是Java数据库连接API,而JNDI是Java命名和目录接口API。

这里的主要内容是,在JNDI目录中,您实际上存储了一个JDBC数据源,因此,您只需使用JDBC通过JNDI查找获得连接。

简而言之:JDBC是数据库领域,JNDI允许您将对象存储在虚拟上下文(目录)中,该上下文可以是本地的,也可以是远程的(实现细节通常不重要)。

您可以通过名称访问这个上下文,获取存储的对象,以便在不同的模块之间共享内容。

应用服务器通常有一个JNDI上下文用于在不同的应用程序之间共享全局对象,连接池恰好是为什么通过JNDI共享是好的最清楚的例子之一(定义一个连接池,在几个WebApp之间共享)。

 类似资料:
  • 我将在应用程序中使用tomcat-jdbc连接池。有两种方法可以添加它: 谢了。

  • 前几天我经历了应用程序的中断,我需要了解以后如何避免这种情况。 我们有一个运行在Tomcat7上的基于Java的web应用程序。应用程序连接到几个不同的数据源,包括Oracle数据库。 下面是我对连接验证的理解。 连接在空闲时(testWhileIdle=false)、借用时(testOnBorrow=false)、返回时(testOnReturn=false) 由于timeBetweenEvic

  • 我使用作为我的数据源实现,我的代码获取连接并关闭连接,如下所示: 当我完成连接工作时,我将关闭它 我的问题是:确实是关闭的,所以当连接像一样关闭时,数据源是如何工作的。我听说datasource connection close并不是真正的close,只是release,但我在datasource类中找不到release API。我想知道datasource如何管理数据库连接的创建、关闭和释放。

  • 我们有一个spring-boot应用程序,它使用嵌入式tomcat进行部署,并使用MySQL后端的默认tomcat-jdbc连接池,而没有为MySQL或tomcat端定制。 该应用程序有一些调度程序,它们主要在一天中的特定时间运行,即在昨天的最后一次cron运行和今天的第一次cron运行之间,有超过9个小时的间隙。然而,无论何时cron在早期运行,它都从未遇到过空闲连接问题。 现在我们看到一条错误

  • 问题内容: 我正在使用带有标准MySQL连接器API的Jetty 9.2(嵌入式),并且对应该如何设置它感到非常困惑。目前,我的 web.xml 文件中包含以下内容: …这在我的jetty-env.xml中: …然后执行以下代码初始化: 当我尝试启动服务器时,出现错误。我已经在代码初始化中尝试了许多不同的字符串变体,例如删除了对对象的调用,但是我只是不断地获得相同错误的变体,只是值不同。 这两个x

  • 我们刚刚从dbcp迁移到tomcat jdbc连池。我们在加载中尝试了系统,收到了以下异常: 请注意: 不忙的连接在哪里?忙的数字在这之后一直在下降,但我们仍然没有得到任何连接。 有什么想法吗? 配置: env:ubuntu和tomcat 6. db-mysql