2010年8月28日 星期六

使用Hibernate Tool 由資料表自動建立Java Class

 

  1. 新建專案
    image
  2. 設定專案的Build Path,加入JDBC Driver及Hibernate的library設定 
     image
  3. 切換到Hibernate Tool perspective
    image
  4. 對新建的Project按右鍵,新建Hibernate Configuration File
    image
  5. 指定Configuration file存放的位置
    image
  6. 依下圖填上資訊,勾選Create a console configuration
     image
  7. 按下一步後,就會帶入Console Configuration 設定,選定Database Connection後,按下Finish完成Console的設定
    image
  8. 切換到Hibernate Configurations view
    image
  9. 依序展開Hibernate Console Configuration
    image
  10. 選取Hibernate Code Generation Configuration
    image
  11. 設定Main tab的內容(最好給定package名稱),記得勾選Reverse engineer from JDBC configuration
     image
  12. 勾選要自動產生的東西後,按Run
     image
  13. 程式碼產生完成
    image 

Java Persistence Framework比較

資料來源:http://www.javaworld.com/javaworld/jw-07-2008/jw-07-orm-comparison.html

目前Java關於persistence的Framework主要有iBATIS、JPA和Hibernate三種,這篇文章簡單地介紹了如何選擇這三種framework來做persistence的處理。

他們之間的主要差異在於,iBAITS並沒有提供完整的O/R mapping,它所做的是Object與 SQL return result之間的mapping。而且iBAITS運作時,是直接使用內嵌的SQL來查詢資料庫,所以Programmer必需直接撰寫SQL,且必需綁定在資料庫伺服器的提供商。不過這種設計,programmer可以直接掌控SQL,所以能不斷tune出效能最好的SQL

Hibernate及JPA都有完整的O/R mapping的功能,它們都不直接採用SQL,而是有自己的查詢語言(雖然長得很像SQL),在執行時期再動態產生SQL進行資料庫查詢。也因為如此,使用其所開發的程式,不會有綁定在某家資料庫系統的問題。相較於Hibernate,JPA提供的是一組標準,任何provider都可以去實作JPA標準(如Apache的 OpenJPA),因此實際執行的效能及一些特性就必需看各家JPA provider實作的程度如何;而Hibernate本身就是一個實作,算是目前滿活躍的一個framework,有許多人在使用及維護。

最後iBAITS支援.NET、及Ruby on Rails;Hibernate支援Java及.NET;而JPA(Java Persistence API)當然只支援Java

Features iBATIS Hibernate JPA
Simplicity Best Good Good
Complete ORM solution Average Best Best
Adaptability to data model changes Good Average Average
Complexity Best Average Average
Dependence on SQL Good Average Average
Performance Best Best N/A *
Portability across different relational databases Average Best N/A *
Portability to non-Java platforms Best Good Not Supported
Community support and documentation Average Good Good