〈Java Data Objects 深度探討〉徹底革新了 Java 開發者與資料庫及其它資料儲存處的互動方式。JDO 可以讓你以 Java 程式員最自然的方式來儲存及擷取物件。你不需要在資料庫的資料表中使用 JDBC 或 EJB 之由容器管制之永續保存機制:JDO 實作會在幕後處理永續保存,而你則使用一般的 Java 語法依據 Java 物件的欄位來進行查詢。
這樣產生的軟體會是真正的物件導向程式,而非在後端含有大量資料庫程式之部分物件導向程式。JDO 可讓你儲存平凡的一般 Java 物件,而且也不強迫你使用不同的資料模型及型別來處理資料儲存的作業。因此,程式會變得比較容易維護、容易再使用、以及容易測試。此外,你也不會被限定在特定的資料庫供應商:JDO 程式是完全與資料庫無關的。你甚至不需知道資料儲存處是關聯式資料庫、物件式資料庫、或只是一組檔案。
這本由 JDO 規格的主導人及主要制訂人所編寫的書,詳盡地論述了 JDO API。從示範許多 JDO 功能的簡單應用程式開始,本書徹底地介紹了 JDO。〈Java Data Objects 深度探討〉會告訴你如何讓類別成為永續保存、JDO 如何將永續保存類別對應至資料庫、如何在執行期設定 JDO、如何執行交易、以及如何進行查詢。更進階的章節包括如非交易式存取及樂觀式交易的選擇性功能。本書最後則討論如何在網頁應用程式及 J2EE 環境中使用 JDO。
無論你只想瞭解有趣的新技術,或認真地考慮除了 JDBC 或 EJB CMP 之外的技術,都會發現這本書很重要。至目前為止,這是最具權威及最完整的一本書。
作者簡介:
David Jordan 是 JDO 專家小組的主要制訂人,也是 JDOCentral.com 的仲裁人。他是 Object Identity 公司的負責人,這間公司提供 JDO 的咨詢服務。Craig Russell 是 Java 資料物件規格的主導人,他也是 Sun ONE 應用程式伺服器之由容器管制之永續保存元件的設計師。
目錄
引言
序言
第一章 初探
定義永續保存的物件模型
永續保存的類別
將類別宣告為永續保存
專案的組建環境
使用 JDO 參考實作所需的 Jar
專案的目錄結構
強化永續保存類別
建立資料儲存處連線與交易
取得 PersistenceManager
建立 FOStore 資料儲存處
操控實體
讓實體能永續保存
存取實體
修改實體
刪除實體
摘要
第二章 JDO 介面概論
javax.jdo 套件
JDO 的例外類別
javax.jdo.spi 套件
選擇性的功能
識別身分的選項
選擇性的集合
與交易有關之選擇性功能
第三章 JDO 架構
應用程式 JVM 內的架構
單一的 PersistenceManager
存取同一資料儲存處的多個 PersistenceManager
存取不同資料儲存處的多個 PersistenceManager
共享的實作快取
存取資料儲存處
直接存取檔案系統或本機的資料儲存處
遠端存取 JDO 伺服器
遠端存取 SQL 資料儲存處
JDO 應用程式的系統架構
JDO 複雜用戶端與本機資料儲存處
網頁伺服器中的 JDO 應用程式
當作 Web Service 的 JDO 應用程式
以 EJB 元件連接複雜用戶端與應用程式伺服器
網頁伺服器與 EJB 伺服器
使用 Session Bean 偽裝機制的 EJB Session Bean
提供 CMP 的 JDO
第四章 定義永續保存類別
類別與實體的種類
類別的種類
實體的種類
Java 類別與中介資料
JDO 中介資料
繼承
Media Mania 的物件模型
欄位
支援之型別
欄位的永續保存
Media Mania 模型的完整中介資料
第五章 資料儲存處的對應
對應的方式
建立關聯式模型的結構
SQL 99
建立 Java 與關聯式模型中的結構
將類別對應至資料表
將單一值的欄位對應至資料欄
名稱對應
型別對應
索引
身分識別
繼承
參照
集合與關係
使用外來鍵
使用合併表
一對一關係
表達 List 與 Map
第六章 類別強化
強化的方式
參考強化工具
供應商的強化
二位元相容性
強化對原始碼的影響
強化工具所做的改變
中介資料
實體層級的資料
欄位的調整
第七章 建立 JDO 執行環境
設定 PersistenceManagerFactory
連線性質
選擇性功能的性質
旗號
設定多個介面中的旗號
判斷選擇性的功能與預設的旗號設定
供應商特有的性質
無法設定的性質
取得 PersistenceManager
使用者物件
關閉 PersistenceManager
關閉 PersistenceManagerFactory
交易
交易的性質
交易與資料儲存處中的鎖定
JDO 中的交易類型
取得交易
設定交易的類型
劃定交易界限
在回復時還原資料數值
判斷交易是否為現行
多個 PersistenceManager
多執行緒
第八章 管制實體
實體的永續保存性
明確的永續保存性
依可存取性的永續保存
Extent 的存取
存取 Extent
遍歷 Extent
忽略快取
存取與更新實體
明確地標示修改過的實體
刪除實體
刪除傳播
第九章 JDO 查詢語言
查詢的成員
建立與初始化查詢
快取中的改變
查詢的名稱空間
型別名稱
欄位、參數、與變數名稱
關鍵字
字面常數
查詢的執行
參數宣告
執行查詢
編譯查詢
查詢過濾器
運算式的一般特性
查詢運算子
參照
集合
排序查詢的結果
關閉查詢
第十章 身分識別
概說
JDO 身分類型
中介資料
身分類別
資料儲存處身分
應用程式身分
主鍵欄位
永續保存類別之 equals() 與 hashCode() 方法
應用程式身分類別
單一欄位的主鍵
複合式主鍵
含有外來鍵的複合式主鍵
在繼承階層中的應用程式身分
非永久性身分
身分的方法
取得身分類別
取得實體的身分
經由身分取得實體
改變實體的應用程式身分
取得實體目前之應用程式身分
身分的 String 表示
進階議題
選擇身分類型
使用身分或查詢
跨 PersistenceManager 的身
第十一章 生命期狀態與轉換
生命期狀態
暫態
新建的永續保存(persistent-new)
中空狀態(hollow)
乾淨的永續保存(persistent-clean
骯髒的永續保存(persistent-dirty)
已刪除之永續保存(persistent-deleted)
新建刪除之永續保存(persistent-new-deleted)
狀態的詢問
狀態轉換
在資料儲存處交易過成中的狀態轉換
在完成交易時的狀態轉換
交易之間的狀態
第十二章 管制欄位
交易式欄位
null 值
取得欄位
預設擷取群組
取得所有欄位
欄位的管制
序列化
在生命期事件中管制欄位
第一與第二級物件
指定第二級物件
嵌入 Collection 元素
當成第二級物件的永續保存類別
分享實體
第十三章 管制快取
明確地管制快取中的實體
更新實體
刪除實體
複製
暫態交易式實體
暫態交易式生命期狀態
狀態的詢問
狀態轉換
使永續保存實體成為暫態
第十四章 非交易式的資料存取
非交易式功能
在交易外讀取資料
非交易式永續保存狀態
在確認交易時保留值
在回復交易時還原值
交易前影像 (Before Image)
還原永續保存實體
還原新建的永續保存實體
在交易外修改永續保存實體
熱快取的範例
第十五章 樂觀式交易
確認時的驗證
還原自失效的交易
設定樂觀式交易行為
樂觀式交易的範例
樂觀式交易的生命期轉換
刪除實體
使實體成為交易式
修改實體
確認
回復
第十六章 網頁伺服器的環境
網頁伺服器
存取 PersistenceManagerFactory
服務請求
依據請求的 PersistenceManager
依據應用程式的 PersistenceManager
依據交易式請求的 PersistenceManager
依據 Session 的 PersistenceManager
交易
JavaServer Pages
Struts 與 JDO
第十七章 J2EE 應用程式伺服器
Enterprise JavaBeans 架構
Stateless Session Bean
設定 PersistenceManagerFactory
Stateless Session Bean 與由容器管制的交易
Stateful Session Bean 與由容器管制的交易
由 bean 自行管制的交易
javax.transaction.UserTransaction
javax.jdo.Transaction
Stateless Session Bean 與由 bean 自行管制的交易
Stateful Session Bean 與由 bean 自行管制的交易
Message-Driven Bean
永續保存個體與 JDO
儲存本機的永續保存個體
儲存遠端的永續保存個體
附錄 A 生命期狀態與轉換
附錄 B JDO 中介資料 DTD
附錄 C JDO 介面與
附錄 D JDO 查詢語言的 BNF
附錄 E 範例的原始碼
索引
引言
序言
第一章 初探
定義永續保存的物件模型
永續保存的類別
將類別宣告為永續保存
專案的組建環境
使用 JDO 參考實作所需的 Jar
專案的目錄結構
強化永續保存類別
建立資料儲存處連線與交易
取得 PersistenceManager
建立 FOStore 資料儲存處
操控實體
讓實體能永續保存
存取實體
修改實體
刪除實體
摘要
第二章 JDO 介面概論
javax.jdo 套件
JDO 的例外類別
javax.jdo.spi 套件
選擇性的功能
識別身分的選項
選擇性的集合
與交易...