gpt4 book ai didi

java - 了解 JPA 中的 Persistence.xml

转载 作者:搜寻专家 更新时间:2023-11-01 02:31:44 24 4
gpt4 key购买 nike

我正在尝试理解以下内容:

当我创建一个 EJB 项目并将其部署到 Glassfish 时,我是在 Glassfish 的管理员中心设置 JDBC 资源/连接池,还是在 persistence.xml 中添加所有不同的用户名、密码等属性?我一点都不明白。

我不明白为什么我们同时拥有 JDBC 资源和 JDBC 连接池。它是什么,它们之间有什么区别?有人可以向我解释这些事情或/并提供一些关于 persistence.xml 文件及其周围部分的良好链接吗?

最佳答案

最好定义一个 JDBC 资源而不是将信息放在 persistence.xml 中。通过这种方式,您将利用连接池。您将在 persistence.xml 中定义为 JDBC 资源提供的 JNDI 名称。

What is it and what is the difference between them

下面我粘贴了 Glassfish 3.x 帮助的一些部分。看看这个。这真的很有帮助

JDBC 连接池

一个JDBC连接池包含了一组在连接池注册时创建的JDBC连接

JDBC 资源

Java 数据库连接 (JDBC) 资源(数据源)为应用程序提供连接到数据库的方法。通常,管理员为域中部署的应用程序访问的每个数据库创建一个 JDBC 资源;但是,可以为一个数据库创建多个 JDBC 资源。

应用程序通过在 Java 命名和目录接口(interface) (JNDI) API 树上查找数据源然后请求连接,从连接池获取数据库连接。与数据源关联的连接池提供与应用程序的连接。

将数据源 (JDBC) 资源视为某种数据服务(连接池)外观的工厂。在这种情况下,它隐式地从池中获取连接并将其提供给您的应用程序。

一个 persistence.xml 示例:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="WebApplication2PU" transaction-type="JTA">
<jta-data-source>jdbc/sample</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>

这一行是我为我的 JDBC 资源指定的 JNDI 名称:

 <jta-data-source>jdbc/sample</jta-data-source>

您不需要以这种方式在 persistence.xml 中定义与数据库连接相关的任何内容...只需资源的 JNDI 名称

关于java - 了解 JPA 中的 Persistence.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7770847/

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