Blog: http://www.aygfsteel.com/beansoft/
可自由傳播, 未經作者許可不得用于商業用途(如付費培訓等).
注: 此文檔原文(英文)位于 MyEclipse 安裝后的幫助文檔中.
___________________________________________________________________________________________________________
1. 前言
本文檔基于以下環境編寫: Sun JDK 1.5, Eclipse 3.2 和 MyEclipse 5.0. 所有的截屏基于 Eclipse, MyEclipse Enterprise Workbench, 和 Windows XP 的默認用戶界面設置. 如果你對本文檔的介紹有閱讀上的困難, 請閱讀 用戶反饋 部分來了解如何向 MyEclipse 文檔團隊提交反饋.
___________________________________________________________________________________________________________
3. 介紹
這個快速入門展示了使用 MyEclipse Enterprise Workbench 開發 Hibernate 的基本功能, 概念和技術. 我們將全程帶領你來開發一個非常簡單的 Java Hibernate 應用. 對于這個教程沒有包含到的問題和概念, 我們推薦你去參考 資源 部分列出的 Hibernate 資源.
這個文檔展示了如何進行下列工作:
注意: 在使用本教程時建議您事先閱讀了 Database Explorer 快速入門 這個教程來了解如何創建連接和元數據功能.
___________________________________________________________________________________________________________
4. Hibernate 一覽
Hibernate 是一個非常流行的開源的易于配置和運行的基于 Java 的對象-關系映射(JORM) 引擎. 它提供了很豐富的功能包括:
Hibernate 使用 Java 編寫, 是高可配置的軟件包, 可以通過兩種配置文件格式來進行配置. 第一種配置文件名字為 hibernate.cfg.xml. 在啟動時, Hibernate 查詢這個 XML 里面的屬性來進行操作, 例如數據庫連接字符串和密碼, 數據庫方言(database dialect), 以及映射文件位置等. Hibernate 在類路徑中查找這個文件. 第二種配置文件是映射描述文件(文件擴展名為 *.hbm), 它來指示 Hibernate 如何來將特定的 Java 類和一個或者多個數據庫表格中的數據進行映射. MyEclipse 提供了工具來處理這兩種配置文件, 并且可以將它們和你對數據庫和 Hibernate 映射的 Java 類的修改進行同步.
Hibernate 可以用在任何需要將 Java 對象和數據庫表格中的數據進行移動的 Java 應用中. 因此, 它在開發兩層和三層的 J2EE 應用中很有用. 向你的應用中集成 Hibernate 包括:
c.為每個持久化 Java 類創建單獨的映射描述文件
___________________________________________________________________________________________________________
5. 創建HibernateDemo項目
這一部分描述了創建名為 HibernateDemo 的簡單的 Java 項目的過程, 這個項目使用 Hibernate 來保存文本消息到一個單獨的數據庫表格中. 因為多數企業的網絡應用都是和企業關系數據庫中的數據進行交互, 我們將集中精力到編寫 Java 數據對象和映射文件到現有的數據庫.
我們需要映射到 Java 類的這個數據庫表格列在下面. 為了方便測試, 我們已經向數據庫中添加了很多測試數據.
echo_message DDL |
CREATE TABLE echo_message ( id integer PRIMARY KEY not null, msg VARCHAR(255) ); insert into echo_message values(1, 'hello world'); insert into echo_message values(2, 'goodbye world'); |
注意: 盡管這個快速入門使用了 Oracle, 但是這些步驟和上面的表格基本上是通用的, 可以在任何數據庫下工作.
___________________________________________________________________________________________________________
5.1 創建HibernateDemoJava Project
我們先來創建一個普通的名為 HibernateDemo 的 Java 項目, 這個項目讀取寫入數據到 echo_message 數據庫表.
從 MyEclipse 菜單欄選擇 File > New > Project > Java Project. 接著會打開 New Java Project 向導. 輸入 HibernateDemo 到 Project name 在 Project Layout 下選中 Create separate source and output folders 單選鈕. 選擇 Finish 來完成這個頁面.
___________________________________________________________________________________________________________
5.2 添加 Hibernate Capabilities 到HibernateDemo項目
現在 HibernateDemo 項目已經創建, 我們將添加 MyEclipse Hibernate 功能到這個項目. 這個基于向導的處理過程執行了下面的操作:
添加 Hibernate 類庫 (JARs) 到項目的類路徑. 在項目中創建并配置 hibernate.cfg.xml 在項目中創建自定義的 Session Factory 類來簡化 Hibernate 會話處理我們通過打開 MyEclipse Add Hibernate Capabilities 向導來開始:
在 Package Explorer 中選擇 HibernateDemo 項目 接下來, 從 MyEclipse 菜單欄選擇 MyEclipse > Add Hibernate Capabilities ... 來啟動向導 (參考圖 2).
圖 2. 啟動 "Hibernate Support" 向導

圖 3. 添加 Hibernate 支持到 Java 項目
保持 Hibernate 3.1 specification 選中不變. 選擇你需要的類庫集合, 在這個示例中 Core 類庫足夠了. 保持 Add checked Libraries to project build-path 選中. 選擇 Next.
表-1. Hibernate Support 向導 - 第1頁選項
選項 | 描述 |
Hibernate Specification |
要添加到項目中的 Hibernate 版本支持功能. 為了最大限度的使用 MyEclipse Hibernate 工具, 推薦 Hibernate 3.1. |
MyEclipse/User Libraries |
可以添加到你的項目的構造路徑的類庫集合. |
Add checked Libraries to project build-path |
選中的類庫將會添加到你的項目的構造路徑中, 但是相應的 JAR 文件將 不會 復制到你的項目中. 這些 JAR 文件 將會 在發布程序時復制, 這是推薦的設置方式. |
Copy checked Library Jars to project folder and add to build-path |
選中的類庫 JAR 文件將會被復制到你的項目并添加到構造路徑中去. |
Library Folder |
僅在上面的選項選中時可用. |
第 2 頁 允許你自定義配置文件的名字和路徑.
圖 4. Hibernate 配置文件設置
圖 5. Hibernate 數據庫配置
注意: 在這里數據庫配置并非必須的; 你可以手工輸入所有需要的信息, 不需要選擇一個配置.
在這種情況下, 你必須確保在向導完成后手工復制 JDBC 驅動 JAR 文件到你的項目中.選擇 Next.
上面進行的數據源配置操作可以現在跳過, 可以在隨后的 Hibernate Configuration 編輯器 中進修改.
項目的最后一步是配置一個 SessionFactory 類, 這個類將會訪問 Hibernate 功能所生成的基礎代碼. 本向導的截屏如圖 6 所示.
圖 6. 創建 SessionFactory 詳細信息
表 3 - Hibernate Support 向導 - 第 3 頁選項
選項 | 描述 |
Create SessionFactory Class? |
如果啟用, 向導將會創建一個 Hibernate 會話工廠的新類. |
Java source folder |
決定新類將被創建到的源代碼目錄. |
Java package |
指定 Session 工廠將被創建到的包名. |
Class name |
指定 Session 工廠類的名字. |
Java Compliance Level |
生成的 Session 工廠類的 Java 編譯器等級. |
注意: Session Factory 也可以在稍后創建, 通過 Session Factory 向導來完成 (File > New > Other MyEclipse > Hibernate > Hibernate Session Factory).
如果你在第一頁選中了復制類庫到你的項目中, 在向導完成之后的至多 30 秒內可能失去反應, 因為它將復制類庫并更新多種項目資源. 請耐心等待并在進行其它操作之前等待過程的結束.
這個向導結束后將進行下列操作:
如果在第一頁選擇了復制類庫到你的項目, 將安裝 Hibernate 類庫 (JARs) 到項目中 更新項目的構造路徑來包含已安裝的 Hibernate 類庫 給項目創建并配置 hibernate.cfg.xml 文件 為你的項目創建一個自定義的 SessionFactory 類 (例如 HibernateSessionFactory) 來簡化 Hibernate 會話會話處理圖 7 高亮顯示了新創建的 HibernateSessionFactory.java 文件里面的重要功能. 這個類管理了一個單獨的 Hibernate Session 對象, 通過 getSession() 方法進行延遲加載并且在調用 closeSession()方法之后刷新并釋放數據. 在運行的時候, Hibernate 會話創建過程必須要能夠訪問類路徑里面的 hibernate.cfg.xml 文件. 變量 CONFIG_FILE_LOCATION 定義了文件 hibernate.cfg.xml 相對于包的路徑. 默認值通過 Hibernate 支持向導來提供. 如果你改動了 hibernate.cfg.xml 文件的位置, 你必須手工修改 CONFIG_FILE_LOCATION 的值來引用到新的文件的位置或者可以通過在使用之前調用 setConfigFile() 方法來設置為新的路徑.
圖 7. HibernateSessionFactory 類
___________________________________________________________________________________________________________
5.3 自定義 Hibernate 配置文件
完成了 5.2 部分的配置向導后, Hibernate 配置文件將會自動打開.
如果你在添加功能過程中跳過了數據源連接的配置, 你可以現在來完成它, 也可以跳轉到 添加屬性.
自定義配置文件里面的需要連接到我們的數據庫的信息.
選中 Use JDBC Driver 選項.我們將指定 Database Explorer 中的 JDBC 驅動. 如果你尚未配置 JDBC 驅動, 請閱讀 Database Explorer 快速入門 然后在進行下面的操作之前配置一個. 從 Connection Profile 下拉框中選中一個配置.
如果你只是配置了 JDBC 驅動但是沒有配置一個連接屬性, 你可以選擇 New Profile 按鈕來創建一個新的連接配置. 如果你已經有了一個連接配置, 當你選擇其中的一個之后將會自動填充下面的 4 個輸入框中的內.
點擊 Copy JDBC Driver and add to classpath... 鏈接. 為你的數據庫選中正確的 Hibernate Dialect. 你的配置頁面將會顯示為這樣的內容:
圖 8. Hibernate 配置文件, 配置了 Oracle 連接
你可以使用 Properties 部分來添加和修改屬性.
圖 9. 添加屬性
Mappings 部分可以讓你添加也許已經存在項目中的映射文件. 另外, 從 Package Explorer 拖放 映射文件到這個輸入框也可以達到同樣的效果.
圖 10. 添加映射文件
圖 11. Hibernate 配置文件