Eclipse通過HibernateTools實現逆向生成Hibernate實體類或對映
做專案必然要先進行資料庫表設計,然後根據資料庫設計建立實體類(VO),這是理所當然的,但是到公司裡做專案後,讓我認識到,沒有說既進行完資料庫設計後還要再“自己”建立一變VO。意思是,在專案設計時,要麼根據需求分析建立實體類,由正向生成資料庫表;要麼就先進行資料庫表設計,再逆向生成實體類。沒有說進行完任意一方的設計後再去花時間去自己匹配建立另一方的設計。
原因是:
1. 1.5倍工作量,浪費時間。(時間對公司來說很重要)
2. 無法保證兩邊對映一致。因為兩邊都是自己設計的,那麼就需要人為保證對映關係統一,會有隱患。
3. 開發、維護上都不利。因為如果任意一方因某些原因需要改用,那麼經常要兩邊都要改,這樣的話對映不一致的可能性不僅更大,而且效率低下。而如果利用正逆向工程的話,則很容易解決。
所以,因專案原因我便研究了下由資料庫逆向生成Hibernate實體類的方法。
在Myeclipse或Intellji Idea中,正逆向工程操作比較簡單,而如果是eclipse的話,會比較麻煩,因為必須要先配置下Hibernate環境(同理如果要生成其他持久化層框架的實體類,也需要先配置)。
PS:本人本地環境:JDK1.8 、SQL Server 2008 、Eclipse: Version: Neon.3 Release (4.6.3)
那麼下面講述正題:如何從資料庫逆向生成Hibernate實體類
1、首先,要在eclipse中採用自帶的資料庫管理器(Data Management),連通你的資料庫:
然後選擇資料庫,我這裡用的是Sql Server,然後起個別名,如:JPA Sql Server
然後點選下圖按鈕,新建一個數據庫驅動配置。
選擇資料庫版本,我用的時SQL Server 2008版本。
然後選擇相應資料庫版本的jar包。
下面配置資料庫相關連結配置
接下來,完善Properties下的General選項卡內容,同樣是連線資料庫資訊,配置完成後點選TEST Connection按鈕測試是否能連線資料庫。
確認無誤後,單擊Finish。
之後Data Management就會出現在JPA SQL Server的資料庫資源管理器,出現如下介面說明資料庫連線成功
2、生成hibernate實體類
開啟Hibernater Configurations視窗。(PS:如果沒有此選項,需安裝Hibernate Tools外掛,可參考安裝方法:https://jingyan.baidu.com/article/67508eb4d298e19cca1ce494.html)
然後在開啟視窗右擊,點選Add Configuration...
Project選擇專案(Test-JPA),Database connection選擇剛剛配好的JPA SQL Server(其實可以直接選擇[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按鈕
最終生成效果如下: