gpt4 book ai didi

java - 关于 JDBC 资源和 JDBC 连接池 Glassfish 的一些混淆

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:14:55 24 4
gpt4 key购买 nike

我即将连接到我的数据库,并且我正在使用 EJB 和 JPA。我最近开始做这些技术,所以我在理解这一切时遇到了一些问题:)我知道需要 persistence.xml 才能使用 JPA。这是我配置如何连接到数据库的文件,我知道。然而,似乎有多种方法可以做到这一点。

在 persistence.xml 文件和 Glassfish 中定义诸如用户名、数据库、密码等属性会有什么区别(或者我什么时候应该使用一个替代方案?)?优点/缺点(如果有的话)。

在我发布的图像下方,我有 JDBC 资源和 JDBC 连接池。我对两者的术语有点困惑。为什么我们不在JDBC Resources中添加用户名、数据库、密码等属性呢?谁能解释一下它们之间的区别及其含义?

JDBC Resources

A JDBC resource (data source) provides applications with a means of connecting to a database. Typically, the administrator creates a JDBC resource for each database accessed by the applications deployed in a domain. (However, more than one JDBC resource can be created for a database.) http://download.oracle.com/docs/cd/E19316-01/820-4335/ablih/index.html

我觉得我们在池中而不是在资源中添加这样的属性很奇怪,但我可能误解了这些概念。

enter image description here

最佳答案

在“JDBC 连接池”中,您可以创建容器管理的 JDBC 数据源(具有连接池功能)。数据源至少需要知道 JDBC 驱动程序、JDBC URL、用户名和密码。

在“JDBC 资源”中,您可以将那些容器管理的 JDBC 数据源绑定(bind)到一个或多个 JNDI 名称,以便它们通过 JNDI 可用于已部署的 Web 应用程序。

persistence.xml 中,您可以指定是使用本地数据源还是使用容器管理的数据源。如果你想使用容器管理的数据源,那么你应该指定它的 JNDI 名称。使用容器管理的数据源的优点是您可以在多个 Web 应用程序之间共享单个数据源。在 JPA 的情况下,它还有一个优点是您可以使用 JTA(容器管理的事务),这样您就不需要调用 transaction.begin()commit() , rollback() 等在每个方法中。

关于java - 关于 JDBC 资源和 JDBC 连接池 Glassfish 的一些混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772678/

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