作項目必然要先進行數據庫表設計,而後根據數據庫設計創建實體類(VO),這是理所固然的,可是 到公司裏作項目後,讓我認識到,沒有說既進行完數據庫設計後還要再「本身」創建一變VO。意思是,在項目設計時,要麼根據需求分析創建實體類,由正向生成 數據庫表;要麼就先進行數據庫表設計,再逆向生成實體類。沒有說進行完任意一方的設計後再去花時間去本身匹配創建另外一方的設計。數據庫
緣由是:oracle
1. 1.5倍工做量,浪費時間。(時間對公司來講很重要)app
2. 沒法保證兩邊映射一致。由於兩邊都是本身設計的,那麼就須要人爲保證映射關係統一,會有隱患。框架
3. 開發、維護上都不利。由於若是任意一方因某些緣由須要改用,那麼常常要兩邊都要改,這樣的話映射不一致的可能性不只更大,並且效率低下。而若是利用正逆向工程的話,則很容易解決。eclipse
因此,因項目緣由我便研究了下由數據庫逆向生成Hibernate實體類的方法。數據庫設計
在Myeclipse中,正逆向工程操做比較簡單,而若是是eclipse的話,會比較麻煩,由於必需要先配置下Hibernate環境(同理若是要生成其餘持久化層框架的實體類,也須要先配置)。工具
有關eclipse配置Hibernate環境的方法:更新hibernate插件。測試
那麼下面講述正題:如何從數據庫逆向生成Hibernate實體類spa
1. 首先,要在eclipse中採用自帶的數據庫管理器(Data Management),連通你的數據庫:hibernate
而後選擇數據庫,這裏用的oracle,而後給個名字,如MyOracle。
點擊下圖中按鈕,新建一個數據庫驅動的配置。
選擇數據庫版本,這裏是oracle 10g版本,能夠爲該配置另起個名字。
而後選擇相應數據庫版本的jar包。
下面就是依據自身狀況填寫數據庫鏈接配置了。
接下來,完善Properties下的General選項卡內容,一樣是鏈接數據庫的信息,配置完後點擊Test Connection按鈕測試是否能連通數據庫。
而後點擊Next,再確認無誤後,單擊Finish。
以後Data Management就會出現MyOracle的數據庫資源管理器,發生變化以下說明數據庫配置成功。
2. 生成hibernate實體類
打開Hibernate Configurations窗口。
而後在打開窗口右擊,點擊Add Configuration...
Project選擇項目(test),Database connection選擇剛剛配好的MyOracle(其 實能夠直接選擇[Hibernate configured connection]經過Hibernate配置文件鏈接數據庫,可是經過這種方式並不必定能成功,單獨採用Data Management也一樣不必定成功,緣由不是很清楚,因此最後採用Data Management + Hibernate配置文件的結合方式,這樣就比較保險啦)
在項目(test)內任意位置新建Hibernate的相關配置文件(hibernate.properties和hibernate.cfg.xml)。
新建hibernate.properties:
新建hibernate.cfg.xml:
返回Edit Configuration窗體後,選擇Common選項卡中Encoding選擇UTF-8,其餘默認便可,點擊OK按鈕
這樣Hibernate Configuration就添加了一個配置信息,以下圖
在eclipse菜單欄中的工具欄的空白處右擊鼠標,選擇Customize Perspective
彈出以下窗體後,依照圖中選擇Command Groups Availability選項卡,勾選Hibernate Code Generation,而後單擊肯定。
以後工具欄就會出現相應按鈕。
單擊該按鈕,並選擇圖中Hibernate Code Generation Configurations
而後彈出以下該窗口,按以下圖操做,右擊後選擇New
彈出以下窗體,選擇輸出的項目地址,填寫包名,勾選Reverse engineer from JDBC Connection,而後建立hibernate.reveng.xml
建立hibernate.reveng.xml:
Console configuration選擇剛剛配置好的hibernate,點擊Refresh按鈕,就會出現數據庫的所有schema,找到你的數據庫,而後將其 Include到右側窗口裏,而後點擊Finish按鈕完成hibernate.reveng.xml的建立。
返回後選擇Exporters選項卡,勾選Domain code和Hibernate XML Mappings,而後點擊Run按鈕
最終生成效果以下: