|
[書籍導讀]
Hibernate 程式高手秘笈-
讓簡單之事自動做,複雜之事能達成
這本書 — 真的太有效率了
很難想像,這本書這麼有效率地解決了物件/關聯式資料庫對映(ORM)這個重大議題。一個簡單的永續保存架構(Persistence Framework)需要一本簡單的書,為讀者提供最有效率的學習途徑,這本書做到了。你可能只需花一個週末的時間,或者一趟旅行中的空檔,便讀完它,並且對於自己或許多開發團隊長久以來,深陷其中或採 work around 繞行的問題,獲得了一個近乎完滿的解決。讀本書的投資報酬率,正如同 Hibernate 這個輕量級的架構(卻可以勝任重量級的工作)一樣 — 真的是太高了。
這本書採取的寫作策略,完全是以讀者的學習效率為導向,選取的主題,探索的深度,以及編排鋪陳的方式,都恰到好處。書中範例與說明都相當好,易於瞭解,同時也夠複雜,足以闡明在實務世界中 Hibernate 的強大用途。跟著作者一步步走過,彷彿經歷了一趟 Java 與ORM 的知性之旅。
本書內容
本書教你使用 Hibernate 的林林總總,從安裝、組態到複雜的關聯及合成型態都有。使用的範例與說明都非常精采,易於瞭解,同時也夠複雜,足以說明實務世界中 Hibernate 的強大用途。如果你得替你的應用程式加個有效的永續保存層(Persistence layer),如果你正掙扎在混亂的物件/關聯式資料庫世界中,不要再拖延,和以往相比,這件事已經變得有趣多了,本書將告訴你原因何在。
本書將告訴你:
- 安裝與設定 Hibernate、資料庫系統、以及Ant建置環境。
- Entity/Instance、Transient/Persistent、以及物件在暫時狀態與永續狀態間變換的觀念。
- 建立與設定對映文件(Mapping Document)。
- 建立與操作永續保存物件。
- 使用 Hibernate 提供的諸多自動化工具,如程式碼、Schema 生成器等。
- 各種關聯:雙向關聯、Lazy 關聯(為提昇執行效率)、具生命週期的關聯、以及反身關聯等。
- 集合的永續保存。
- 列舉型態的永續保存。
- 自訂型態的永續保存:User Type 與Composite User Type。
- 條件式查詢:Criteria Query。
- 物件導向式的查詢語言:HQL。
- Hibernate 支援的資料型態以及與各家 SQL dialect。
忽略永續保存層問題 — 時時刻刻都在成長的軟體熵
絕大多數的軟體專案都必須處理永續保存層的問題,但多數團隊不是屈就於 JDBC 的基本功能,就是為 EJB 的昂貴代價避之唯恐不及。想像一下:一個歷經三年、多次改版的專案,前後多達十多位程式人員參予,在前端、後端成百上千的程式類別中,散佈著來自不同時期、不同人員的無數 SQL 字串,以及各式各樣包裝 JDBC 的查詢管理機制,這真是有點恐怖。更別說,在公司內,不同團隊,不同專案間,存在著種種不同的作法,這種時時刻刻都在成長的軟體熵(software entropy),會永遠平安無事嗎?
這其實是個一個很典型的問題︰物件和關聯式資料庫的對映問題。事實上,自從物件導向程式設計成為主流以後,更凸顯出這個問題。關聯式資料庫是儲存資料的最好選擇,但是在 Persistence Layer上,關聯式資料庫體系與 OO 體系格格不入,可以想像,當成群設計完美的Business Layer 物件,碰到無數的 SQL 語句時,是多麼痛苦,你面對的是,一大堆封裝好、卻在 JDBC 中已經完全失去物件意義的資料,你整體的 OOAD 就到此為止了。所以才有以物件式資料庫取代關聯式資料庫的想法,但顯然沒什麼有效的進展。於是,只能在上層的應用層與資料庫之間找解決方案,需要一種夠成熟、夠簡單的 ORM 產品。
絕佳的 ORM 產品 — Hibernate(第 14 屆 Jolt Award 得主)
Hibernate 會替你做很多事,簡單到讓你幾乎忘記你是在用資料庫。你需要物件的時候,物件就會在那兒,這就是這項技術的運作方式。
目前 ORM 的 Framework 很多,單單 Open Source 就不少。舉凡 Torque、OJB、Castor JDO、JRF、Jaxor、TJDO、Xorm 等等。當中,不是不夠成熟,就是成長緩慢,有的甚至入門不易。從使用的簡單性、提供的支援工具、標準化的程度、以及使用人數來看,無疑地,Hibernate 是當中的大贏家。
Hibernate 在 2.1 版(目前正式版為 3.1 版)就已經贏得第 14 屆〈Libraries, Frameworks, and Components〉領域的 Jolt Award,Jolt Award 素有“軟體業界的奧斯卡”之美譽,這絕對是值得你採用的一個卓越技術。
Hibernate另外具有如下的特點︰
- 免費的 Open Source,並且夠成熟、開發者活躍,有穩定的發展保障。
- 輕量級實作卻完成足夠複雜度,調整、測試容易,減輕程式人員的負擔。
- 提供豐富的自動化工具(如自動產生程式碼、資料庫 Schema 等)。
- 具可擴展性,開放 API,當本身功能不夠用的時候,可以自行實作。
- 原始碼非常少,非常清楚、簡潔(卻能實現這麼多的功能),易於深入研究。
帶著這本書,去度個假吧
現在,你可以帶著這本書,去度個假吧!回來後,你會發現,你的 Java 世界變得不一樣了,你的程式人生已經變成彩色的!
楊仁和
04/21/2006 |