2009-12-12 52 views
0

我努力學習JPA,我想創建使用JPA查詢和更新數據庫表的簡單Java命令行應用程序。我繪製了執行此操作所需的簡單代碼。但我不知道如何配置目錄結構,放置persistence.xml文件的位置,打包等等。這只是一個快速而骯髒的學習練習,所以我希望儘可能簡單。有人能夠說明這些步驟嗎?如何配置和打包一個簡單的Java應用程序使用JPA

我使用的Weblogic 10.3。

+1

你真的必須從「簡單的Java命令行應用程序」和「使用Weblogic」 – ChssPly76 2009-12-12 02:50:32

+0

:)選擇一個好吧,我的電腦有WL 10.3庫。儘管如此,我仍試圖儘可能簡化應用程序。 我是Java/JEE/JPA的新手,所以我對如何設置dir結構和其他配置/包裝細微差別有些困惑。 – Sajee 2009-12-12 02:54:11

回答

1

的persistence.xml雲在META-INF目錄是在同一水平作爲你的持久化類。 Here's an example一些有效和無效的配置。在我寫的非Java EE應用程序,我建立在WEB-INF/classes/META-INF/的persistence.xml的JAR,因爲我的JPA類是WEB-INF/classes/

+1

如果我不是創建一個web應用程序,而是一個簡單的命令行應用程序,以上是否適用? – Sajee 2009-12-12 03:05:50

+1

我相信它應該 - 而不是你的類在'WEB-INF/classes /'中,它們只會在'classes /'中,所以'META-INF'應該是一個頂級目錄。 – 2009-12-12 03:20:22

1

不知道明白了什麼的WebLogic與Java命令行應用程序:)

反正所有你正在尋找的細節都在The Java EE 5 TutorialPersistence Units節我引用下面可以做:

持久單元

的持久化單元定義一組 由 0管理的所有實體類個實例在 應用。這組實體 類的表示單個數據存儲內的數據包含 。

持久性單元由 persistence.xml配置文件中定義。 JAR文件或目錄,其 META-INF目錄包含 persistence.xml被稱爲持久性單元的根 。 持久性單元的範圍由 持久性單元的根確定的。

每個持久性單元必須是 ,該名稱使用唯一 的名稱標識爲持久性單元的作用域。

持久性單元可以被封裝爲WAR或EJB JAR文件的一部分 ,或者可以 被包裝爲可 然後被包括在WAR或EAR文件 一個JAR文件。

如果你在一個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/MyOrderDBjar-fileclass元素指定管理的 持久性類:實體類, 可嵌入的類和映射的 超類。該jar-file元素 指定可見 到 包含託管持久化類, 而類元素明確 名稱管理的持久化類包裝的持久性單元的JAR文件。

jta-data-source(對於JTA感知 數據源)和 non-jta-data-source(非JTA感知 數據源)元素指定的數據源的全球 JNDI名稱 由容器使用。

相關問題