Hibernate項目學習經驗
在向大家詳細介紹Hibernate項目之前,首先讓大家了解下Hibernate/JPA的一些思想,然后全面介紹Hibernate項目。
大約一年以前,我為了學習一些Hibernate專業知識,因此我參加了一個Hibernate項目。從那時起,我一直在使用Hibernate框架下的JPA(Java持久API)實現,使用的思想仍就是一樣的。那個項目使用了一個數據庫,這個數據庫規模有些大,略顯落后,并且還被許多的應用程序共用。為了盡快加入到項目中,我開始學習一些Hibernate知識。從書本上的例子開始學習,感覺很簡單,學起來也很快,但是發現從零開始開發一個項目,并且控制它又是另外一回事了。試著在一個大型,復雜,被許多應用程序共用的數據庫上使用Hibernate就又完全不同了。弄清楚了我可能遭遇到的技術難點,我開始想別的招了,要盡快從另外的方向開始,克服困難。
在最終的學習和實踐中,我發現我還是學到了許多重要的東西,雖然我們的項目還沒有完全做完,但是我認為我們目前已經非常漂亮的應用了Hibernate/JPA的一些思想。現在我需要重新思考反省我所學到的東西,如下便是我學到的一些心得:
1.和數據庫管理員成為朋友
目前存在一個趨勢,就是一些Java開發者忽視數據庫管理員的重要性。這便犯了一個很大的錯誤,對于要取得任何的ORM(對象關系映射)技術的成功,和數據庫管理員保持一個良好的工作關系是至關重要的。有如下兩個原因:
單獨數據庫管理員雖然不能使Hibernate項目成功,但是他們通常可以讓這些項目失敗。
數據庫管理員對數據庫本身具有很好的洞察力,很好的職業習慣,告訴你一些易犯的錯誤和操作建議。我能記起這樣的很多例子,一個數據庫管理員的建議節約了我們很多的時間和提供給我們一個很好的解決方案。
在大多數情況下,擁有好的數據庫管理員,并且和他們保持良好的關系對你ORM(對象關系映射)工作至關重要。
2.從一開始使用(***強制使用)好的命名標準
我們知道對命名標準的討論將會有爭議的,但是我們必須明確一件事情,我們的命名要讓我們的數據模型有意義,這能讓開發者使用起來簡單,以免他們迷惑。所以,如何命名實體和屬性是非常重要的。我有我喜歡命名標準,并且認為他們是***的,但是在這里我不想把他們強加于你們。最重要的是你自己做出決定使用什么樣的命名標準,并且讓所有人使用它。實際上,不僅僅命名標準需要統一,其它的也需要(如,布爾型用“Y/N” 或者 0/1表示)。
3.不要試著映射所有的屬性
我們總是設法使用工具,如Dali來映射所有的東西,然后形成一張表格(一些表格有上百列 !)。這最終會很麻煩。為什么?因為我們使用的是共用的,先前的數據庫,有許多的字段是我們并不關心和從來不使用的。映射它們只會導致性能問題和造成混亂。以上介紹Hibernate項目。
【編輯推薦】