<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    網(wǎng)路冷眼@BlogJava

    熙熙攘攘一閑人 以冷靜的眼光觀察技術(shù)
    posts - 88, comments - 193, trackbacks - 0, articles - 28
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
     原文地址:http://testwww.netbeans.org/kb/55/persistence_zh_CN.html

     

    Java EE 5 平臺(tái)中的 Java 持久性

    本文檔向您介紹了有關(guān)使用 Java™ 持久性開發(fā) Web 應(yīng)用程序的基礎(chǔ)知識(shí)。Java 持久性 API 是作為 Java EE 5 平臺(tái)的一部分引入的。在本教程中,您將創(chuàng)建一個(gè)簡單的 Web 應(yīng)用程序項(xiàng)目。我們將在項(xiàng)目中使用持久性,但是 Java 持久性 API 允許我們?cè)跓o需創(chuàng)建 EJB 模塊的情況下使用持久性。

    在項(xiàng)目中使用 Java 持久性可以大大簡化應(yīng)用程序的開發(fā),因?yàn)槟恍枰渲貌渴鹈枋龇麨槌志眯宰侄位驅(qū)傩蕴峁?duì)象關(guān)系映射信息,而可以使用標(biāo)注直接在簡單的 Java 類中定義這些屬性。

    實(shí)體持久性是通過 EntityManager API 來管理的。EntityManager API 用于處理持久性上下文,而每個(gè)持久性上下文是一組實(shí)體實(shí)例。在開發(fā)應(yīng)用程序時(shí),您可以在類中使用標(biāo)注來指定實(shí)體實(shí)例的持久性上下文實(shí)例,然后通過容器處理實(shí)體實(shí)例的生命周期。

    本文檔使用的是 NetBeans IDE 5.5 發(fā)行版本

    預(yù)計(jì)持續(xù)時(shí)間:15 分鐘

    先決條件

    本文檔假定您已具備以下技術(shù)的一些基本知識(shí)或編程經(jīng)驗(yàn):

    • Java 編程
    • NetBeans IDE

    本教程所需的軟件

    在學(xué)習(xí)本教程之前,您需要在計(jì)算機(jī)中安裝以下軟件:

    在學(xué)習(xí)本教程之前,您需要在 IDE 中注冊(cè) Sun Java System Application Server 的本地實(shí)例。

    教程練習(xí)


    建立 Web 應(yīng)用程序項(xiàng)目

    本練習(xí)的目的是創(chuàng)建 ZooApp Web 應(yīng)用程序項(xiàng)目。此應(yīng)用程序?qū)⒗眯略龅?Java 持久性模型的功能。其中一項(xiàng)功能就是,實(shí)體對(duì)象可以成為簡單的 Java 類,因此不再需要將它們放置在 EJB 模塊中并將其打包到 EAR 文件中。這意味著,我們可以直接在 Web 應(yīng)用程序內(nèi)創(chuàng)建實(shí)體類。

    1. 選擇“文件”>“新建項(xiàng)目”(Ctrl-Shift-N)。從 "Web" 類別中選擇“Web 應(yīng)用程序”,然后單擊“下一步”。
    2. 將項(xiàng)目命名為 ZooApp,將服務(wù)器設(shè)置為 "Sun Java System Application Server",將 Java EE 版本設(shè)置為 "Java EE 5",然后單擊“下一步”。
    3. 選中 "JavaServer Faces" 復(fù)選框,然后單擊“完成”。

    小結(jié)

    在本練習(xí)中,您創(chuàng)建了一個(gè)將包含實(shí)體類的 Java EE 5 Web 應(yīng)用程序。

    創(chuàng)建持久性單元

    在本練習(xí)中,我們將創(chuàng)建一個(gè)持久性單元,目的在于通知容器哪些實(shí)體類需要由實(shí)體管理器進(jìn)行管理,以及這些實(shí)體需要使用哪些數(shù)據(jù)源信息。

    我們通過在 persistence.xml(將在 Web 模塊中創(chuàng)建此文件)中定義持久性單元的屬性來創(chuàng)建持久性單元。指定持久性單元的名稱后,將指定持久性提供程序,它包含容器將用于管理實(shí)體實(shí)例的 API。此外,還需要指定數(shù)據(jù)源和表生成策略。我們將使用“新建持久性單元”向?qū)?chuàng)建持久性單元。

    注意:也可以在“新建 - 實(shí)體類”向?qū)е袆?chuàng)建持久性單元。創(chuàng)建實(shí)體類時(shí),如果不存在持久性單元,該向?qū)⑻崾疚覀冞M(jìn)行創(chuàng)建。

    創(chuàng)建持久性單元

    1. 在“項(xiàng)目”窗口中右鍵單擊 "ZooApp" Web 應(yīng)用程序節(jié)點(diǎn),然后選擇“新建”>“文件/文件夾”以打開“新建文件”向?qū)А?
    2. 從“持久性”類別中,選擇“持久性單元”,然后單擊“下一步”。
    3. 保留缺省的持久性單元名稱。
    4. 對(duì)于“持久性提供程序”,使用 TopLink(default)

      缺省提供程序是 TopLink Essential.jarTopLink Essential.jar 包含了 Java 持久性的庫。并且實(shí)體管理器位于 TopLink Essential.jar 中。

    5. 對(duì)于“數(shù)據(jù)源”,使用缺省的數(shù)據(jù)源 jdbc/sample

      缺省數(shù)據(jù)源 jdbc/sample 用于連接到與 Sun Java System Application Server 捆綁在一起的 Java DB 數(shù)據(jù)庫。

    6. 檢查是否為持久性單元選中了“使用 Java 事務(wù) API”,以及“表生成策略”是否設(shè)置為“創(chuàng)建”,以便在部署應(yīng)用程序時(shí)創(chuàng)建基于實(shí)體類的表。
    7. 單擊“完成”。

    “新建持久性單元”向?qū)?src="http://testwww.netbeans.org/images/articles/javaee5/zooapp_persistence_unit_wizard_zh_CN.png"

    單擊“完成”后,IDE 將創(chuàng)建 persistence.xml,并在源代碼編輯器中將其打開。通過單擊源代碼編輯器工具欄中的 "XML",可以查看 persistence.xml 的 XML。此文件包含了 Java EE 5 容器管理應(yīng)用程序的實(shí)體和持久性所需的所有信息。

    小結(jié)

    在本練習(xí)中,您創(chuàng)建了一個(gè)持久性單元,用來指定數(shù)據(jù)源、要永久保存的實(shí)體類以及容器將用于管理實(shí)體生命周期的實(shí)體管理器。

    創(chuàng)建實(shí)體類

    在本練習(xí)中,我們將創(chuàng)建兩個(gè)實(shí)體類,即 Animal.javaPavilion.java,它們用于表示要?jiǎng)?chuàng)建的關(guān)系數(shù)據(jù)庫中的表。此外,還將在類中定義一些字段來表示數(shù)據(jù)。Java 持久性規(guī)范允許我們使用標(biāo)注為容器提供有關(guān)字段的信息,如對(duì)象關(guān)系映射信息。

    創(chuàng)建 Animal 實(shí)體類

    首先,我們將創(chuàng)建實(shí)體類 Animal。此類用于表示數(shù)據(jù)庫中的 ANIMAL 表。在創(chuàng)建實(shí)體類時(shí),IDE 會(huì)添加 @Entity 標(biāo)注以將該類定義為實(shí)體類。創(chuàng)建類后,我們將在類中創(chuàng)建字段以表示表中所需的數(shù)據(jù),并使用標(biāo)注提供有關(guān)一些字段的其他信息。

    每個(gè)實(shí)體類都必須具有一個(gè)主鍵。在創(chuàng)建實(shí)體類時(shí),IDE 會(huì)添加 @Id 標(biāo)注以聲明要用作主鍵的字段。此外,IDE 還會(huì)添加 @Generated 標(biāo)注以指定主 Id 的鍵生成策略。

    要?jiǎng)?chuàng)建 Animal 類,請(qǐng)執(zhí)行以下操作:

    1. 右鍵單擊 "ZooApp" 項(xiàng)目節(jié)點(diǎn),然后選擇“新建”>“文件/文件夾”。
    2. 從“持久性”類別中,選擇“實(shí)體類”,然后單擊“下一步”。
    3. 鍵入 Animal 作為類名,鍵入 entity 作為包名,并將“主鍵類型”保留為 Long。單擊“完成”。

    單擊“完成”后,將在源代碼編輯器中打開新建的實(shí)體類 Animal.java。在源代碼編輯器中,請(qǐng)執(zhí)行以下操作:

    1. 將以下字段聲明添加到類中:
        String name;
          String kind;
          String weight;
          Pavilion pavilion;
          
    2. 在源代碼編輯器中單擊鼠標(biāo)右鍵,然后選擇“重構(gòu)”>“封裝字段”以便為每個(gè)字段生成 getter 和 setter。在“封裝字段”對(duì)話框中,確保選中所有字段的 getter 和 setter 復(fù)選框。
    3. 在“封裝字段”對(duì)話框中單擊“下一步”,然后在“輸出”窗口的“重構(gòu)”標(biāo)簽中單擊“執(zhí)行重構(gòu)”。
    4. 現(xiàn)在我們希望更改將在 Animal 表中創(chuàng)建的其中一列的名稱。我們希望該列的名稱是 animalName 而不是 name。通過在 name 字段聲明之上添加以下標(biāo)注,可以使用標(biāo)注來指定生成列的名稱:
          @Column(name="animalName")
    5. 我們還希望 Animal 表中的 pavilion 列具有多對(duì)一的關(guān)系。通過在 pavilion 聲明之上添加以下標(biāo)注,可以實(shí)現(xiàn)這一目的:
          @ManyToOne
    6. 按 Alt-Shift-F 組合鍵為類生成所有必要的 import 語句。
    7. 保存您所做的更改。

    在下一步中,我們將創(chuàng)建 Pavilion 實(shí)體類。

    創(chuàng)建 Pavilion 實(shí)體類

    現(xiàn)在我們將創(chuàng)建實(shí)體類 Pavilion,它用于表示數(shù)據(jù)庫中的 PAVILION 表。我們將再次在類中使用標(biāo)注指定一些字段的對(duì)象關(guān)系映射。要?jiǎng)?chuàng)建 Pavilion 類,請(qǐng)執(zhí)行以下操作:

    1. 右鍵單擊 "ZooApp" 項(xiàng)目節(jié)點(diǎn),然后選擇“新建”>“文件/文件夾”。
    2. 從“持久性”類別中,選擇“實(shí)體類”,然后單擊“下一步”。
    3. 鍵入 Pavilion 作為類名,鍵入 entity 作為包名,并將“主鍵類型”保留為 Long。單擊“完成”。

    單擊“完成”后,將在源代碼編輯器中打開新建的實(shí)體類 Pavilion.java。在源代碼編輯器中,請(qǐng)執(zhí)行以下操作:

    1. 將以下字段聲明添加到類中:
        String name;
          String address;
          Collection <Animal> animals;
    2. 選擇“重構(gòu)”>“封裝字段”以便為字段生成 getter 和 setter。
    3. name 聲明之上添加以下標(biāo)注以更改生成列的名稱:
          @Column(name="pavilionName")
    4. animals 聲明之上添加以下標(biāo)注,為實(shí)體指定一對(duì)多的關(guān)系:
          @OneToMany(mappedBy="pavilion")
    5. 按 Alt-Shift-F 組合鍵生成所有缺少的 import 語句。
    6. 保存您所做的更改。

    小結(jié)

    在本練習(xí)中,您創(chuàng)建了兩個(gè)實(shí)體類并定義了字段,而且還使用標(biāo)注定義了在部署應(yīng)用程序時(shí)將在表中生成的某些列的屬性。

    創(chuàng)建 Web 接口

    現(xiàn)在我們希望創(chuàng)建一些簡單的 Web 頁,以查看是否創(chuàng)建了數(shù)據(jù)庫表以及是否可以添加數(shù)據(jù)。我們將為應(yīng)用程序添加 Java Server Faces (JSF) 頁,并使用“通過實(shí)體類創(chuàng)建 JSF 頁”向?qū)Э焖賱?chuàng)建一個(gè)簡單的 Web 接口。

    1. 從主菜單中,選擇“文件”>“新建文件”。從“持久性”類別中,選擇“通過實(shí)體類創(chuàng)建 JSF 頁”,然后單擊“下一步”。
    2. 在“新建 - 通過實(shí)體類創(chuàng)建 JSF 頁”向?qū)е校瑔螕?#8220;全部添加”以選擇兩個(gè)實(shí)體類,然后單擊“下一步”。
    3. 將“JSF 頁文件夾”文本字段保留為空,以便在缺省位置保存 JSF 文件。
    4. entity 指定為已生成類的包,然后單擊“完成”。

    “通過實(shí)體類創(chuàng)建 JSF 頁”向?qū)? src=

    單擊“完成”后,IDE 將生成所需的 JavaServer Faces 文件,以便我們可以運(yùn)行并測試 ZooApp。

    運(yùn)行項(xiàng)目

    在本練習(xí)中,我們將部署 ZooApp Web 應(yīng)用程序項(xiàng)目并測試該應(yīng)用程序。

    1. 啟動(dòng) Java DB 數(shù)據(jù)庫,方法是:選擇“工具”>“Java DB 數(shù)據(jù)庫”>“啟動(dòng) Java DB 服務(wù)器”。
    2. 右鍵單擊 "ZooApp" 項(xiàng)目節(jié)點(diǎn),然后選擇“運(yùn)行項(xiàng)目”。

    單擊“運(yùn)行項(xiàng)目”后,將在瀏覽器中打開一個(gè)頁面,您可以通過該頁面包含的菜單,查看場館 (Pavilions) 和動(dòng)物 (Animals) 的列表。

    ZooApp 主頁

    您還可以添加、編輯或刪除動(dòng)物 (Animals) 和場館 (Pavilions) 數(shù)據(jù)。

    ZooApp 的添加動(dòng)物 (Animal) 頁

    小結(jié)

    在本練習(xí)中,您生成了為 Java EE 5 平臺(tái)開發(fā)的 ZooApp Web 應(yīng)用程序,然后部署并測試了該 Web 應(yīng)用程序。

    疑難解答

    下面是您創(chuàng)建項(xiàng)目時(shí)可能會(huì)遇到的一些問題。

    使用“新建 - 通過實(shí)體類創(chuàng)建 JSF 頁”向?qū)r(shí)的問題

    使用該向?qū)ㄟ^實(shí)體類創(chuàng)建 JSF 頁時(shí),您可能會(huì)在向?qū)е锌吹揭韵洛e(cuò)誤消息:

    "This wizard can only be used in a web project with JSF support."(此向?qū)е荒茉诰哂?JSF 支持的 Web 項(xiàng)目中使用。)

    如果看到此消息,則需要檢查是否已將 Java Server Faces 框架添加到項(xiàng)目屬性中。通過執(zhí)行以下操作,可以將 Java Server Faces 支持添加到 Web 項(xiàng)目中:

    1. 在“項(xiàng)目”窗口中,右鍵單擊 Web 應(yīng)用程序節(jié)點(diǎn),然后選擇“屬性”。
    2. 在“項(xiàng)目屬性”對(duì)話框的“類別”窗格中選擇“框架”,然后單擊“添加”。
    3. 在“選擇框架”對(duì)話框中,選擇 "Java Server Faces",然后單擊“確定”。
    4. 在“項(xiàng)目屬性”對(duì)話框中,單擊“確定”以關(guān)閉窗口。

    將 JSF 框架添加到項(xiàng)目屬性后,您應(yīng)該能夠使用該向?qū)?chuàng)建 JSF 頁了。



    后續(xù)步驟

    有關(guān)使用 NetBeans IDE 5.5 開發(fā) Java EE 應(yīng)用程序的更多信息,請(qǐng)參見以下資源:

    您可以在 Java EE 5 教程中找到有關(guān)使用 Java 持久性的詳細(xì)信息。

    要發(fā)送意見和建議、獲得支持以及隨時(shí)了解 NetBeans IDE Java EE 開發(fā)功能的最新開發(fā)情況,請(qǐng)加入 nbj2ee 郵件列表


    評(píng)論

    # re: Java EE 5 平臺(tái)中的 Java 持久性(轉(zhuǎn)載)  回復(fù)  更多評(píng)論   

    2007-08-03 21:46 by 通過實(shí)體類創(chuàng)建JSF頁 不見了
    第一次做了試驗(yàn)"通過實(shí)體類創(chuàng)建JSF頁"項(xiàng)還在,后不知道做了哪些東東.在持久化中找還到"通過實(shí)體類創(chuàng)建JSF頁"這個(gè)了.請(qǐng)問樓主知道嗎?
    主站蜘蛛池模板: 永久免费av无码网站yy| 中文亚洲AV片在线观看不卡| 国色精品va在线观看免费视频| 中文字幕在线日亚洲9| 久久亚洲AV无码精品色午夜麻| 国产一级大片免费看| 18禁止观看免费私人影院| a级毛片在线免费| 老司机午夜在线视频免费| 亚洲综合av一区二区三区不卡| 色噜噜综合亚洲av中文无码| 国产精品亚洲玖玖玖在线观看| 午夜色a大片在线观看免费| 国产免费女女脚奴视频网| 久草免费福利资源站| 4hu四虎免费影院www| 在线精品自拍亚洲第一区| 亚洲精华液一二三产区| 精品亚洲成在人线AV无码| 亚洲黄色免费在线观看| 亚洲国产人成在线观看69网站| 亚洲色婷婷综合久久| 亚洲精品在线视频| 亚洲国产人成精品| 亚洲成a人一区二区三区| 免费日韩在线视频| 国产精品国产自线拍免费软件| 猫咪社区免费资源在线观看| 希望影院高清免费观看视频| 69视频免费在线观看| 麻豆成人久久精品二区三区免费| a级毛片黄免费a级毛片| 日本一区午夜艳熟免费| 野花香在线视频免费观看大全| a毛看片免费观看视频| 中文字幕在线免费播放| 免费看黄的成人APP| 久久成人免费播放网站| 一区二区三区在线免费看| 99久久精品免费精品国产| 久久久久久精品免费免费自慰|