Hibernate概述
Hibernate是非常優秀、成熟的O/R Mapping框架。它提供了強大、高性能的Java物件和關係資料的永續化和查詢功能。
什麼是O/R Mapping?它有什麼優點?
簡單地說,物件-關係映射就是Java應用中的物件到關聯式資料庫中的表的自動的(和透明的)永續化,使用中繼資料(meta data)描述物件與資料庫間的映射。本質上,ORM的工作是將資料從一種表示(雙向)轉換為另一種。
提高生產率(Productivity)
與永續性有關的代碼可能是Java應用中最乏味的代碼。Hibernate去掉了很多讓人心煩的工作(多於你的期望),讓你可以集中更多的精力到業務問題上。不論你喜歡哪種應用開發策略——自頂向下,從領域模型開始;或者自底向上,從一個現有的資料庫模式開始——使用Hibernate和適當的工具將會減少大量的開發時間。
可維護性(Maintainability)
減少了代碼,重構更方便,提高了可維護性。ORM是物件和關聯式資料庫之間的緩衝區,用來很好的將他們隔離。
更好性能(Performance)
ORM軟體的實現人員可能有比你更多的時間來研究性能優化問題。你知道嗎,例如,緩存PreparedStatement的實例對DB2的JDBC驅動導致了一個明顯的性能增長但卻破壞了InterBase的JDBC驅動?你瞭解嗎,對某些資料庫只更新一個表中被改變的欄位可能會非常快但潛在地對其它的卻很慢?在你手工編寫的解決方案中,對這些不同策略之間的衝突進行試驗是多麼不容易呀?
獨立性(Vendor independence)
ORM抽象了你的應用系統使用下層SQL資料庫和SQL方言的方式。如果工具支援許多不同的資料庫(dialect),那麼這會給你的應用帶來一定程度的可攜性。你不必期望可以達到“一次編寫,到處運行”,因為資料庫的性能不同並且達到完全的可攜性需要犧牲更強大的平臺的更多的力氣。然而,使用ORM開發跨平臺的應用通常更容易。即使你不需要跨平臺操作,ORM依然可以幫你減小被各資料庫鎖定的風險。
(O/R Mapping是一項實用的工程技術,把資料庫的E/R模型用java的物件導向語法描述出來,Hibernate是其中的當之無愧的最耀眼的明星,多種靈活的class繼承樹映射機制。)