做項目必然要先進行數(shù)據(jù)庫表設(shè)計,,然后根據(jù)數(shù)據(jù)庫設(shè)計建立實體類(VO),這是理所當(dāng)然的,,但是到公司里做項目后,,讓我認識到,,沒有說既進行完數(shù)據(jù)庫設(shè)計后還要再“自己”建立一變VO。意思是,,在項目設(shè)計時,,要么根據(jù)需求分析建立實體類,由正向生成數(shù)據(jù)庫表,;要么就先進行數(shù)據(jù)庫表設(shè)計,,再逆向生成實體類。沒有說進行完任意一方的設(shè)計后再去花時間去自己匹配建立另一方的設(shè)計,。 原因是: 1. 1.5倍工作量,,浪費時間。(時間對公司來說很重要) 2. 無法保證兩邊映射一致。因為兩邊都是自己設(shè)計的,,那么就需要人為保證映射關(guān)系統(tǒng)一,,會有隱患,。 3. 開發(fā)、維護上都不利,。因為如果任意一方因某些原因需要改用,,那么經(jīng)常要兩邊都要改,,這樣的話映射不一致的可能性不僅更大,而且效率低下,。而如果利用正逆向工程的話,,則很容易解決,。 所以,因項目原因我便研究了下由數(shù)據(jù)庫逆向生成Hibernate實體類的方法,。 在Myeclipse中,正逆向工程操作比較簡單,,而如果是eclipse的話,,會比較麻煩,因為必須要先配置下Hibernate環(huán)境(同理如果要生成其他持久化層框架的實體類,,也需要先配置)。 有關(guān)eclipse配置Hibernate環(huán)境的方法這里就不敘述了,,上網(wǎng)搜吧,我給提供個參考鏈接: http://hi.baidu.com/java513/blog/item/6be18a3c5d79daf43c6d9742.html 那么下面講述正題:如何從數(shù)據(jù)庫逆向生成Hibernate實體類 1. 首先,,要在eclipse中采用自帶的數(shù)據(jù)庫管理器(Data Management),,連通你的數(shù)據(jù)庫:
然后選擇數(shù)據(jù)庫,,這里用的oracle,然后給個名字,,如MyOracle。 點擊下圖中按鈕,,新建一個數(shù)據(jù)庫驅(qū)動的配置。 選擇數(shù)據(jù)庫版本,,這里是oracle 10g版本,可以為該配置另起個名字,。 然后選擇相應(yīng)數(shù)據(jù)庫版本的jar包,。 下面就是依據(jù)自身情況填寫數(shù)據(jù)庫連接配置了。 接下來,,完善Properties下的General選項卡內(nèi)容,同樣是連接數(shù)據(jù)庫的信息,,配置完后點擊Test Connection按鈕測試是否能連通數(shù)據(jù)庫。 然后點擊Next,,再確認無誤后,單擊Finish,。 之后Data Management就會出現(xiàn)MyOracle的數(shù)據(jù)庫資源管理器,發(fā)生變化如下說明數(shù)據(jù)庫配置成功,。 2. 生成hibernate實體類 打開Hibernate Configurations窗口。 然后在打開窗口右擊,,點擊Add Configuration... Project選擇項目(test),,Database connection選擇剛剛配好的MyOracle(其實可以直接選擇[Hibernate configured connection]通過Hibernate配置文件連接數(shù)據(jù)庫,,但是通過這種方式并不一定能成功,,單獨采用Data Management也同樣不一定成功,,原因不是很清楚,,所以最后采用Data Management + Hibernate配置文件的結(jié)合方式,這樣就比較保險啦) 在項目(test)內(nèi)任意位置新建Hibernate的相關(guān)配置文件(hibernate.properties和hibernate.cfg.xml),。 新建hibernate.properties: 新建hibernate.cfg.xml: 返回Edit Configuration窗體后,,選擇Common選項卡中Encoding選擇UTF-8,,其他默認即可,點擊OK按鈕 這樣Hibernate Configuration就添加了一個配置信息,,如下圖 在eclipse菜單欄中的工具欄的空白處右擊鼠標(biāo),選擇Customize Perspective 彈出如下窗體后,,依照圖中選擇Command Groups Availability選項卡,,勾選Hibernate Code Generation,,然后單擊確定,。 之后工具欄就會出現(xiàn)相應(yīng)按鈕,。 單擊該按鈕,,并選擇圖中Hibernate Code Generation Configurations 然后彈出如下該窗口,按如下圖操作,,右擊后選擇New 彈出如下窗體,選擇輸出的項目地址,,填寫包名,,勾選Reverse engineer from JDBC Connection,,然后創(chuàng)建hibernate.reveng.xml 創(chuàng)建hibernate.reveng.xml: Console configuration選擇剛剛配置好的hibernate,點擊Refresh按鈕,,就會出現(xiàn)數(shù)據(jù)庫的全部schema,找到你的數(shù)據(jù)庫,,然后將其Include到右側(cè)窗口里,,然后點擊Finish按鈕完成hibernate.reveng.xml的創(chuàng)建。 返回后選擇Exporters選項卡,,勾選Domain code和Hibernate XML Mappings,,然后點擊Run按鈕 最終生成效果如下: |
|