Luc*_*uke 6 java jpa glassfish java-ee
我即将建立与我的数据库的连接,我正在使用EJB和JPA.我最近开始做这些技术所以我有一些问题在这一点上理解这一切:)我知道为了使用JPA需要persistence.xml.我知道,这是我配置如何连接数据库的文件.然而,似乎有多种方法可以做到这一点.
在persistence.xml文件和Glassfish中定义属性(如用户名,数据库,密码等)会有什么不同(或者我应该何时使用另一种替代方法?)?优点/缺点,如果有的话.
在我发布的图像下面,我有JDBC资源和JDBC连接池.我对这两个术语感到困惑.为什么我们不在JDBC Resources中添加用户名,数据库,密码等属性?有人可以解释他们之间的区别和他们的意思吗?
JDBC资源
JDBC资源(数据源)为应用程序提供了连接数据库的方法.通常,管理员为域中部署的应用程序访问的每个数据库创建JDBC资源.(但是,可以为数据库创建多个JDBC资源.) http://download.oracle.com/docs/cd/E19316-01/820-4335/ablih/index.html
我觉得很奇怪,我们在池中添加了这些属性,但没有在资源中添加,但我可能会误解这些概念.

在"JDBC连接池"中,您可以创建容器管理的JDBC数据源(具有连接池功能).数据源至少需要知道JDBC驱动程序,JDBC URL,用户名和密码.
在"JDBC资源"中,您可以将这些容器管理的JDBC数据源绑定到一个或多个JNDI名称,以便它们可以通过JNDI对已部署的Web应用程序使用.
persistence.xml您可以在其中指定是使用本地数据源还是使用容器管理数据源.如果要使用容器托管数据源,则应指定其JNDI名称.使用容器托管数据源的优点是,您可以在多个Web应用程序之间共享单个数据源.在JPA的情况下,它也有优势,你可以使用JTA(容器管理事务),这样你就不需要调用transaction.begin(),commit(),rollback()等在每一个方法.