Hibernate: A Developer's Notebook
James Elliott/著
O'Reilly出版
售價:24.95美元
推薦:Amazon四顆星

對於許多程式員來說,我們喜歡寫任何程式,我們可以在任何程式中找到樂趣,但是和資料庫有關的程式除外。偏偏資料庫又是如此重要,躲都躲不掉。資料庫專家可能對SQL能運用自如而樂在其中,但是,程式員不見得如此。即使是資料庫專家,想到要把SQL放進Java程式裡那麼乏味的工作,都會感到害怕。

JDBC無法讓程式員的心智模型連接資料庫
許多重要的應用程式都必需儲存和使用資訊,而且通常都會使用到關聯式資料庫。關連式資料庫和Java物件的世界差異很大,把這兩個世界橋接起來是很重要的事,但這卻是非常複雜而乏味的工作。畢竟程式員的心智模型已經物件化,但是資料庫卻沒有。

多數人都是從努力學會一些SQL查詢寫法起步的,把這些可怕的字串嵌入在Java程式碼內,再使用JDBC執行查詢,處理結果。JDBC已經演進成豐富而彈性十足的資料庫通訊程式庫,現在也提供數種方式可簡化而改良其運作方式,但依然是相當乏味的工作。需要花更多的力氣,把查詢從程式中移出,使其行為類似於物件導向世界中的元件。

Hibernate把資料永續保存的工作自動化
Hibernate是針對Java設計的輕量型物件/關聯式資料庫對應(mapping)服務軟體。Hibernate可讓我們以自然的Java物件形式,輕鬆使用關聯式資料庫內的資訊。Hibernate 2.1贏得《Software Development》雜誌第14屆的Jolt Award,「程式庫、框架、元件類」獎項。

Hibernate和EJB有什麼關係?事實上,多數應用程式並不需要EJB的複雜度,「大部分」使用EJB技術開發的軟體,不是基於炫耀的目的,就是基於愚笨而做出的選擇。通常使用Hibernate直接和資料庫互動,就綽綽有餘了。不過話說回來,EJB Session Bean和BMP Entity Bean也可以使用Hibernate和資料庫溝通。

Hibernate會替我們做很多事,簡單到讓我們幾乎忘記我們是在用資料庫。我們需要物件的時候,Hibernate就會備好物件。Hibernate對Java程式員來說,是一大福音,而James Elliott所著作的這本《Hibernate: A Developer's Notebook》,可以讓我們用極少的時間,學會Hibernate。

本書是學習Hibernate的捷徑
本書會教我們如何使用Hibernate把永續保存的工作自動化:我們只需撰寫自然的Java物件,以及一些組態檔,而Hibernate就能自動搞定我們的物件和資料庫之間的互動細節。我們甚至於不需要知道那個地方有個資料庫,只要修改組態檔,就能更換資料庫。

本書會教我們使用Hibernate的一切,從安裝組態到複雜關聯關係以及合成型態都有。有兩章會探索撰寫複雜查詢內容的各種方式,我們可以用純粹的Java API表述查詢內容,也可以用源自SQL的物件導向查詢語言。別擔心,多數常見應用程式中,根本不需要使用這種詳盡的查詢。如果我們得替應用程式加個後端資料庫,我們不用再拖延了。和以往相比,這工作已經變得更有趣,而本書會告訴我們原因何在。

這本書有效解決物件/關聯式資料庫對應議題,內容相當簡潔,使人對Hibernate的印象更為深刻。一個簡單的永續保存架構需要一本簡單的書,而這本超薄的書做到了。範例的說明都相當良好,易於瞭解,同時也夠實際,能夠在實務世界中說明Hibernate的用途。

物件資料庫十年前喧嚷一時,頗有取代關連式資料庫的氣勢,無奈十年前是「只聞樓梯響,不見人下來」,現在卻是連樓梯都不響了,我判斷「人已經死在樓上了」。所以我們必須繼續面對關連式資料庫,但程式的世界幾乎已經全面物件化,幸好有ADO.NET、JDO、Hibernate這類的技術,將程式中的物件和資料庫做對應。隨著資料庫的相關應用越來越多,這類技術會越來越重要。

《作者簡介》蔡學鏞
清華大學資訊工程碩士,寰震科技技術顧問。曾任華碩集團軟體工程師、元智大學資訊系講師、美商歐萊禮出版社顧問、台灣微軟特約專欄作家。

蔡學鏞曾參與設計清華大學 Java VOD 系統,該系統並獲得第一屆 Java Cup 比賽校園組冠軍。蔡先生著譯有數本 Java 書籍,並在台灣和中國的雜誌開闢技術專欄。

 

熱門新聞

Advertisement