為什么寫這篇BLOG,是因?yàn)榻?jīng)常有同事或網(wǎng)友問起我hiberante實(shí)體類的生成問題。所以下次再有人問我可以省一堆的話了,其實(shí)這個(gè)真的是很簡(jiǎn)單。
現(xiàn)在hibernate在項(xiàng)目中的應(yīng)用是越來過廣泛了。我是從hibernate開始支持注釋語法后才開始研究它的。說實(shí)在的,原來的hibernate生成的一堆堆的XML文件看著就頭暈,還不如自己寫的SQL語句來的舒服,所以一直聽朋友和同事介紹,可自己一直不屑用之。
可是現(xiàn)在有福了hibernate是JPA最常用的實(shí)現(xiàn)之一,而且hiberante自身也對(duì)注釋語法進(jìn)行了支持?,F(xiàn)在再不用去看那一堆堆的XML映射了。而且eclipse還提供了從數(shù)據(jù)庫直接生成Entity Class的工具。既然可以少寫或不寫SQL語句那合樂而為為呢。廢話少說,開始做起來。
還是從我們開始項(xiàng)目的第一步說起,新建項(xiàng)目。一般我們用java做web項(xiàng)目都是File->New->Dynamic Web Project,如下圖:

然后會(huì)出現(xiàn)新建項(xiàng)目的對(duì)話框如圖所示

然后點(diǎn)擊Modify按鈕后如圖

將java persistence選中,這樣就為項(xiàng)目增加了JPA的特性,其它特性根據(jù)項(xiàng)目需要自行修改。點(diǎn)擊OK后。點(diǎn)擊幾次NEXT(忽略的幾步根據(jù)自身情況而定)到JPA FACET窗口,如下圖:
因?yàn)樵蹅冇玫氖莌ibernate列表中沒有所以platform選擇Generic,Type選擇disable library configuration,因?yàn)樵蹅儼研枰膉ar文件直接放到WEB-INF下的lib目錄中就可以了。所以不用配置。再下面的connection這個(gè)是必須要配置的要不我們?cè)趺磸臄?shù)據(jù)庫中生成啊。對(duì)不。
如果以前配置過連接直接選擇就可以了,如果沒有配置過點(diǎn)擊 add connection.如下圖:

選擇要使用的數(shù)據(jù)庫類型,然后下一步,如下圖。其實(shí)這個(gè)類型也沒啥作用只是個(gè)生成連接字符串的模版而以。

選擇已有的驅(qū)動(dòng),如果沒有怎么辦,廢話,當(dāng)然是繼續(xù)新增了。這塊不詳述了,點(diǎn)擊driver后面第一個(gè)按鈕,根據(jù)提示選擇對(duì)應(yīng)的jar文件即可。
做完上述操作點(diǎn)擊Finish.回到JPA Facet窗口。選中Discover annotated classes automatically,把Create orm.xml釣掉。然后點(diǎn)Finish項(xiàng)目就建完了。
然后在項(xiàng)目文件夾上右鍵選擇JPA tools->Generate Entities from Tables.后如下圖:

選擇建好的connection如果沒有connect 就connect一下。就會(huì)如上圖所示了(有時(shí)eclipse會(huì)有些小問題看不見表,可以重啟一下試試,實(shí)在不行就直接建個(gè)JPA project ,生成實(shí)體后再拷到自己的項(xiàng)目中就可以了。)選中要生成實(shí)體的表,Next如下圖:

上面是表之間的關(guān)系,如果可以做相應(yīng)的修改(用的是ecipse 3.5貌似eclipse3.4還沒這個(gè)功能,eclipse越來越強(qiáng)了),再Next后如下圖:

(這個(gè)好像也是eclipse 3.5才加的)都能看明白吧。按照需要改改就可以了,這里不多啰嗦。再Next
后,如下圖:

這是一些表的每個(gè)屬性的調(diào)整,一般也不用調(diào)了。Finish就好了。
嘿嘿終于完成了。貼了這么多圖,累死我了。不過為了大家能弄明白,還是圖比文字更能說明情況,我辛苦點(diǎn)就辛苦點(diǎn)吧。。
看看源碼中生成的java文件是不是你想要的,具體這些類怎么用。就不是這篇文章要說的問題了。如果大家有需要,我下回接著寫。