首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于JDBC资源和JDBC连接池的一些混淆

问关于JDBC资源和JDBC连接池的一些混淆
EN

Stack Overflow用户
提问于 2011-10-14 19:35:07
回答 1查看 2.1K关注 0票数 6

我即将连接到我的数据库,我使用EJB和JPA。我最近已经开始做这些技术了,所以在这一点上我有一些问题:)我知道persistence.xml是使用JPA所必需的。这是我所知道的配置如何连接数据库的文件。然而,似乎有多种方法可以做到这一点。

会有什么不同(或者什么时候我应该使用一种选择而另一种呢?)在persistence.xml文件和Glassfish中定义诸如用户名、数据库、密码等属性?有利/不利(如果有的话)。

在我发布的图片下面,我有JDBC和JDBC连接池。我对这两者的术语有点搞不懂。为什么我们不在JDBC资源中添加诸如用户名、数据库、密码等属性呢?有人能解释一下他们之间的区别和他们的意思吗?

JDBC资源

JDBC资源(数据源)为应用程序提供了连接到数据库的方法。通常,管理员为部署在域中的应用程序访问的每个数据库创建一个JDBC资源。(但是,可以为数据库创建多个JDBC资源。) http://download.oracle.com/docs/cd/E19316-01/820-4335/ablih/index.html。

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

​

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-14 19:44:54

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

在"JDBC资源“中,您可以将那些容器管理的JDBC数据源绑定到一个或多个JNDI名称,以便通过JNDI对部署的web应用程序可用。

在persistence.xml中,可以指定是使用本地数据源还是使用容器托管数据源。如果要使用容器托管数据源,则应指定其JNDI名称。使用容器托管数据源的优点是可以在多个web应用程序之间共享单个数据源。对于JPA,它还具有这样的优点:您可以使用JTA (容器管理事务),这样就不需要在每种方法中调用transaction.begin()、commit()、rollback()等。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7772678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档