前文:
hibernate帶給我們的O/RMapping思想是很正確的,即從面相對象的角度來設計工程中的實體對象,建立pojo,然后在編寫hbm.xml映射文件來生成數據表。但是在實際開發中,往往我們會首先從數據庫的設計角度出發來實現我們預期的項目。所以,這里詳述從數據庫表到實體類的生成。
數據庫:MySQL 5.1
MyEclipse版本:8.0M1
Hibernate版本:3.2
首先,我在數據庫中建立了如下E-R關系:

學生與班級1對多,學生與課程多對多(生成的中間表為:stu_course),學生與身份證:1對1,學生引用身份證主鍵作為外鍵(unique)。
生成的表結構:
按照下圖所示,打開MyEclipse Database Explore視圖
點擊Add Jars,加入數據庫的jar文件。
填寫Connection Url: jdbc:mysql://localhost:3306/hibernatetab2pojo
用戶名和密碼:root
Driver name: com.mysql.jdbc.Driver
填寫完畢之后,可以點擊Test Driver,如果成功,那么接着下一步。
轉回到Java視圖,在項目上點擊右鍵,選擇MyEclipse-->add Hibernate Capabilities
然后下一步選中一個目錄存放自動生成hibernate.cfg.xml文件,一般毫無例外的放在src根目錄下,下一步選中我們第一步建立的那個數據庫對象,然后下一步選中一個目錄存放自動生成的HibernateSessionFactory工具類,這個hibernateSessionFactory工具類就是一個獲取Session的單例,還有一些其它關閉session之類的方法。
最后,也是最關鍵的一步,生成實體類。
轉換到MyEclipse Database Explorer視圖,打開我們的數據庫:hibernatetab2pojo,展開表,選中所有表:

然后,點擊右鍵,選擇Hibernate Reverse Engineering。。。

選中:Create POJO<>。。。,選中Create a Hibernate。。。,選中Update Hibernate。。。。。,接着下一步。

Id Generator:選中native(在我設計的表中,id是自增的,如果想嘗試其它的朋友可自行測試)
選擇:Hibernate types
其它能打勾的都打勾。
下一步,直接點擊finish即可以生成實體類和相應的hbm.xml文件。並且hibernate.cgf.xml也會配置好。





