EMBARCADERO JBuilder 2008 研討會
JPA/Hibernate:具現物件導向思維的好幫手
誠如我們所熟知,Java是一個全方位的開發平台,也是一種物件導向程式語言;但是,在平日的開發工作中,我們恐怕並未充分發揮其物件導向的特性。然而,即便咱們規劃了完善的物件導向設計,當我們將設計藍圖付諸實現,欲連結、存取關連式資料庫的資料時,我們會發現在實作上難以按圖施工,這是因為物件導向和關連式資料庫存在著本質上的差異,茲說明其理由如下:
(1) 結構面的不對等:
以繼承體系為例,我們通常不會將類別圖(Class Diagram)中的子類別和 E-R Diagram 中的 Table 作一對一的對應(否則會導致過多的 SQL Join);而 JDBC 傳回的也並非繼承體系中的子類別物件。
(2) 物件個體的識別:
關聯式資料庫使用主鍵值來識別資料列,但物件並不能僅使用物件實體識別碼(Object Instance Identifier)來加以識別(新生的物件,尚未存在物件實體識別碼),尚須搭配資料庫的商業鍵(Business Key)來輔助
(3) 關聯性:
物件之間透過引用(Reference)來產生關聯,而且有其方向性(單向引用或雙向引用),但關聯資料庫使用外來鍵來聯繫資料列(data row)之間的關係,且沒有方向性可言。
(4) 資料的存取:
物件使用 getXXX() method 來擷取被引用的物件,但資料庫使用 SQL Join 來擷取相關聯的資料。在擷取相關的物件來運作商業邏輯時,該如何搭配資料庫來擷取多少資料以及用甚麼樣的方式擷取,類似這類的擷取計劃(Fetch Plan),亦是需要考量的議題。
所幸,在中原板蕩,群雄四起的Java社群中,異軍突起的優質 ORM (O/R Mapping) 框架/規格如 “JPA/Hibernate”,解決了物件導向和資料庫兩個世界在靜態結構面和動態行為面上的鴻溝(mismatch),得以讓我們完整地具體實現物件導向思維。然而,Hibernate/JPA 的學習曲線頗高,物件導向思維的養成是需要長時間的浸淫、修煉。本次的研討會,除了協助來賓快速掌握ORM 如JPA/Hibernate的概念,提供厚植 O.O. Thinking 的指引外,並進而擴展至Java EE 架構,展示 JBuilder 2008 對於JPA/Hibernate,以及建構企業級Java系統的強大火力支援,茲分述支援JPA/Hibernate相關功能如下:
- 具多樣化的視覺開發工具(Hibernate Tools、Dali JPA Tools、Application Factory 等),強力支援 JPA/Hibernate 的開發撰寫。
- 內建效能診斷/調校工具,在程式執行時期,幫助檢測JPA/Hibernate執行之記憶體使用狀況,找出效能瓶頸,做為提昇效能的參考依據。
- 創新的應用程式工廠(Application Factory),讓開發者能夠快速將各種開源碼框架(像是JSF、Struts2、Spring MVC、Spring、Acegi Security、JPA/Hibernate等框架)整合一起,大幅降低整合(組態)的成本,並提供資料感知(Data Aware)人機介面、資料存取等多樣性的程式產生器樣板,大大降低程式開發成本。
- 搭配優質Together UML 塑模工具之 Live Source 機制,隨時讓圖形化的系統模型與程式碼保持同步,降低相關UML文件之撰寫成本。
- 支援JPA/Hibernate 的測試自動化,以利降低測試成本及測試時間。
EMBARCADERO總代理─興徳資訊,為讓各位能進一步的認識與瞭解Java最新的軟體開發工具與功能 ─ JBuilder 2008,特別舉辦此次『Embarcadero JBuilder 2008產品研討會 ─ JPA / Hibernate:具現物件導向思維的好幫手』,歡迎有興趣的開發同好、先進踴躍上本公司網站報名參加本次集心法(O.O. thinking)與功法(JPA/Hibernate What & How To do)的交流饗宴。

