我正在尝试学习 JPA,我想创建一个简单的 Java 命令行应用程序,它将使用 JPA 来查询和更新数据库表。我绘制了执行此操作所需的简单代码。但是不知道如何配置目录结构,persistence.xml文件放在哪里,打包等等。这只是一个快速而肮脏的学习练习,所以我想让它尽可能简单。有人可以拼出执行此操作的步骤吗?
我正在使用 Weblogic 10.3。
我正在尝试学习 JPA,我想创建一个简单的 Java 命令行应用程序,它将使用 JPA 来查询和更新数据库表。我绘制了执行此操作所需的简单代码。但是不知道如何配置目录结构,persistence.xml文件放在哪里,打包等等。这只是一个快速而肮脏的学习练习,所以我想让它尽可能简单。有人可以拼出执行此操作的步骤吗?
我正在使用 Weblogic 10.3。
不确定 WebLogic 与 Java 命令行应用程序有什么关系:)
无论如何,您正在寻找的所有细节都可以在我在下面引用的 Java EE 5 教程的持久性单元部分中找到:
持久性单位
持久性单元定义了一组由应用程序中的实例管理的所有实体类
EntityManager
。这组实体类表示包含在单个数据存储中的数据。持久性单元由
persistence.xml
配置文件定义。其META-INF
目录包含 的 JAR 文件或目录persistence.xml
称为持久单元的根。持久化单元的范围由持久化单元的根决定。每个持久性单元必须用一个对持久性单元的范围唯一的名称来标识。
持久单元可以打包为 WAR 或 EJB JAR 文件的一部分,也可以打包为 JAR 文件,然后可以将其包含在 WAR 或 EAR 文件中。
如果您将持久单元打包为 EJB JAR 文件中的一组类,
persistence.xml
则应将其放在 EJB JAR 的META-INF
目录中。如果将持久性单元打包为 WAR 文件中的一组类,persistence.xml 应该位于 WAR 文件的
WEB-INF/classes/META-INF
目录中。如果将持久性单元打包到将包含在 WAR 或 EAR 文件中的 JAR 文件中,则 JAR 文件应位于:
- 在
WEB-INF/lib
WAR 的目录中。- 在 EAR 文件的顶层。
- 在 EAR 文件的库目录中。
persistence.xml
档案_
persistence.xml
定义一个或多个持久性单元。以下是一个示例persistence.xml
文件。<persistence> <persistence-unit name="OrderManagement"> <description>This unit manages orders and customers. It does not rely on any vendor-specific features and can therefore be deployed to any persistence provider. </description> <jta-data-source>jdbc/MyOrderDB</jta-data-source> <jar-file>MyOrderApp.jar</jar-file> <class>com.widgets.Order</class> <class>com.widgets.Customer</class> </persistence-unit> </persistence>
该文件定义了一个名为 的持久性单元
OrderManagement
,它使用一个 JTA 感知数据源jdbc/MyOrderDB
。和元素指定托管持久性类:实体类、可嵌入类和映射超类jar-file
。class
该jar-file
元素指定对包含托管持久性类的打包持久性单元可见的 JAR 文件,而 class 元素显式命名托管持久性类。(
jta-data-source
对于 JTA 感知数据源)和non-jta-data-source
(非 JTA 感知数据源)元素指定容器要使用的数据源的全局 JNDI 名称。
persistence.xml 位于META-INF
与您的持久性类处于同一级别的目录中。 这是一些有效和无效配置的示例。在我编写的非 Java EE 应用程序中,我使用 persistence.xml 构建 JAR WEB-INF/classes/META-INF/
,因为我的 JPA 类位于WEB-INF/classes/
.