注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計JAVA及其相關精通JDO

精通JDO

精通JDO

定 價:¥33.00

作 者: (美)David Ezzio著;韓來彬譯;韓來彬譯
出版社: 清華大學出版社
叢編項:
標 簽: Java

ISBN: 9787302106968 出版時間: 2005-06-01 包裝: 平裝
開本: 26cm 頁數: 265 字數:  

內容簡介

  對于Java程序員和應用程序架構師來說,JDO具有不容忽視的價值。JDO為Java對象定義了通用的持久性,從而給應用程序的開發(fā)帶來了眾多優(yōu)勢。JDO能大大減少使用關系數據庫所需的代碼量,并且獨立于數據庫體系結構。 本書分為兩部分。第一部分介紹了JDO的基本概念、查詢、持久性管理器、事務和緩存、增強類和托管字段,以及JDOHelper、回調和導常。第二部分討論了每種體系結構的應用程序設計問題和編碼模式問題。書中還提供了一些示例來展示客戶/服務器應用程序、Web應用程序以及使用Enterprise JavaBeans的應用程序。希望我多年來使用JDO構建應用程序的經驗能對記者有所裨益。 本書主要面向Java程序員和應用程序架構師。

作者簡介

暫缺《精通JDO》作者簡介

圖書目錄

第1章 JDO的基本概念 1
1.1 JDO持久性服務 2
1.1.1 事務 3
1.1.2 創(chuàng)建持久對象 3
1.1.3 檢索持久對象 3
1.1.4 更新持久對象 4
1.1.5 刪除持久對象 5
1.2 托管對象和非托管對象 5
1.2.1 首要類對象和應用程序數據對象 7
1.2.2 次要類對象和嵌入式對象 7
1.2.3 非托管的數據對象 10
1.3 數據對象的十種管理狀態(tài) 12
1.4 標識和惟一性要求 14
1.4.1 三種類型的JDO標識 16
1.4.2 惟一性要求 22
1.4.3 把瞬態(tài)對象鏈接到持久狀態(tài) 24
1.5 小結 25
第2章 查詢 26
2.1 Extent接口 26
2.1.1 Extent和持久性管理器的IgnoreCache屬性 26
2.1.2 用于產生Extent對象的工廠方法 27
2.1.3 只讀的CandidateClass屬性 27
2.1.4 只讀的PersistenceManager屬性 28
2.1.5 判斷Extent是否包含子類 28
2.1.6 在Extent之外獲得迭代器 28
2.1.7 關閉Extent迭代器 28
2.2 JDO查詢服務的設計 29
2.3 Query接口 29
2.3.1 設置查詢的候選項 30
2.3.2 設置查詢的Candidate類 30
2.3.3 設置查詢的過濾器 31
2.3.4 聲明查詢的參數 31
2.3.5 聲明查詢的變量 31
2.3.6 聲明查詢的輸入 32
2.3.7 將查詢結果排序 32
2.3.8 運行查詢 32
2.3.9 關閉查詢結果 33
2.3.10 編譯查詢 33
2.3.11 IgnoreCache屬性 33
2.3.12 只讀的PersistenceManager屬性 34
2.4 用于產生Query對象的工廠方法 34
2.5 JDO查詢過濾器的句法 35
2.5.1 JDOQL的術語 35
2.5.2 JDOQL的操作符 37
2.5.3 JDOQL的查詢方法 38
2.5.4 接口類型的一個普遍問題 39
2.6 查詢變量 39
2.6.1 contains方法特殊的語法語義 41
2.6.2 受約束變量的語義 42
2.6.3 DeMorgan規(guī)則沒有用于受約束的變量 42
2.7 排序查詢結果 43
2.8 在查詢中是使用緩存還是忽略緩存 44
2.9 可映射到JDOQL的SQL查詢 46
2.9.1 在一個表中選擇 48
2.9.2 用單對單關系在連接中選擇 48
2.9.3 用單對多關系在連接中選擇 48
2.9.4 用多對多關系在連接中選擇 49
2.9.5 在自連接中選擇 49
2.9.6 在外連接中選擇 50
2.9.7 使用子查詢選擇 50
2.9.8 簡單性是JDOQL的力量所在 50
2.10 在JDOQL不能滿足需要時使用SQL 51
2.11 JDO和JDOQL是如何有助于開發(fā)過程的 51
2.12 小結 52
第3章 持久性管理器 53
3.1 方法參數中的null值處理 54
3.2 獲得和關閉持久性管理器 54
3.2.1 關閉持久性管理器 54
3.2.2 只讀的Closed屬性 55
3.2.3 只讀的PersistenceManagerFactory屬性 55
3.3 數據對象的JDO管理的控制 55
3.3.1 xxxAll操作的行為 55
3.3.2 設置和刪除持久對象 56
3.3.3 向事務添加對象和從事務中移除對象 58
3.3.4 從JDO的管理中移除持久對象 61
3.3.5 能替代調用makeTransient方法的方法 62
3.4 控制緩存 63
3.4.1 檢索持久狀態(tài) 63
3.4.2 驅逐持久狀態(tài) 65
3.4.3 刷新持久狀態(tài) 66
3.5 獲得和構造標識對象 67
3.6 根據標識提取應用程序數據對象 68
3.7 持久性管理器中的工廠方法 69
3.8 獲得持久性管理器的事務 69
3.9 持久性管理器的屬性 69
3.9.1 IgnoreCache屬性 69
3.9.2 Multithreaded屬性 70
3.9.3 UserObject屬性 70
3.10 小結 70
第4章 事務和緩存 71
4.1 事務 71
4.1.1 JDO中的樂觀事務和數據存儲事務 72
4.1.2 隔離等級和事務間的交互 73
4.1.3 JDO實現定義其事務的隔離等級 74
4.2 JDO的Transaction接口 74
4.2.1 控制事務邊界 75
4.2.2 只讀的PersistenceManager屬性 76
4.2.3 5個事務屬性 76
4.2.4 與事務的完成同步 82
4.3 事務屬性是如何控制狀態(tài)轉換的 84
4.3.1 事務之外的JDO狀態(tài)轉換 84
4.3.2 事務內的JDO狀態(tài)轉換 85
4.3.3 數據存儲事務獨特的JDO狀態(tài)轉換 86
4.3.4 樂觀事務獨特的JDO狀態(tài)轉換 87
4.3.5 當RetainValues為false時JDO的狀態(tài)轉換 88
4.3.6 當RetainValues為true時JDO的狀態(tài)轉換 88
4.3.7 當RestoreValues為false時JDO的狀態(tài)轉換 89
4.3.8 當強RestoreValues為true時JDO的狀態(tài)轉換 90
4.3.9 當弱RestoreValues為true時的JDO狀態(tài)轉換 90
4.4 可選的瞬態(tài)事務特征 91
4.5 JCA、JTA和JDO事務 92
4.6 持久對象及其狀態(tài)的JDO緩存 93
4.6.1 從緩存中移除持久對象 94
4.6.2 持久性管理器的緩存何時可以提高性能 94
4.6.3 控制持久性管理器的緩存 94
4.6.4 JDO實現的二級緩存 95
4.7 小結 96
第5章 增強類和托管字段 97
5.1 應當增強哪些應用程序類 97
5.2 托管字段和非托管字段 98
5.2.1 哪些類型的字段可以是非托管字段 98
5.2.2 哪些類型的字段可以是事務字段 98
5.2.3 哪些類型的字段可以是持久字段 99
5.3 增強 100
5.3.1 預期的增強效果 101
5.3.2 增強的副作用和局限性 102
5.4 JDO元數據 113
5.4.1 JDO元數據文件的名字和位置 113
5.4.2 JDO元數據的結構 114
5.5 小結 124
第6章 產生持久性管理器的工廠 125
6.1 PersistenceManagerFactory接口 125
6.2 獲得持久性管理器 126
6.2.1 從持久性管理器工廠獲得持久性管理器 126
6.2.2 從連接工廠獲得持久性管理器 126
6.3 獲得持久性管理器工廠 127
6.3.1 JDOHelper中的getPersistenceManagerFactory方法 127
6.3.2 從JNDI獲得持久性管理器工廠 130
6.3.3 構造持久性管理器工廠 131
6.4 關閉持久性管理器工廠 131
6.5 獲得連接工廠 132
6.6 分析JDO實現 132
6.6.1 確定實現對可選特征的支持 132
6.6.2 從實現獲得特定供應商的信息 134
6.7 配置持久性管理器工廠 134
6.8 配置到數據存儲的連接 134
6.9 JDO對容器管理事務的支持 135
6.10 JDO對bean管理事務的支持 136
6.11 在CMT會話bean中使用JDO 136
6.12 從業(yè)務方法返回已串行化的數據對象 142
6.13 在帶BMP的實體bean中使用JDO 142
6.13.1 EJB的實體環(huán)境回調方法 146
6.13.2 QuoteServer bean的setup方法和cleanup方法 146
6.13.3 ejbStore回調方法 147
6.13.4 調用ejbStore時,誰負責把修改刷新到數據存儲 147
6.13.5 實體EJB的業(yè)務方法 148
6.13.6 ejbLoad回調方法 148
6.13.7 ejbPassivate回調方法 149
6.13.8 ejbActivate回調方法 149
6.13.9 ejbCreate方法 149
6.13.10 ejbRemove方法 149
6.13.11 ejbFindByPrimaryKey方法 149
6.13.12 EJB查找器方法 150
6.13.13 在業(yè)務方法的響應中串行化數據對象 150
6.13.14 轉換到一個連接工廠 150
6.14 在BMT會話bean中使用JDO 150
6.14.1 無狀態(tài)BMT會話bean 151
6.14.2 有狀態(tài)BMT會話bean必須作出的改變 153
6.15 在消息驅動bean中使用JDO 154
6.16 小結 155
第7章 JDOHelper、回調和異常 156
7.1 JDOHelper實用類 156
7.1.1 JDOHelper中的各種實用方法 156
7.1.2 確定數據對象的管理狀態(tài) 159
7.2 InstanceCallbacks接口 161
7.2.1 jdoPostLoad回調 161
7.2.2 jdoPreStore回調 162
7.2.3 jdoPreClear回調 162
7.2.4 jdoPreDelete回調 163
7.2.5 使用InstanceCallbacks方法的途徑 163
7.2.6 實現InstanceCallbacks的隱含意義 171
7.2.7 在回調方法內部拋出不需檢查異常 171
7.3 JDO異常 171
7.3.1 JDOException構造函數 172
7.3.2 得到嵌套異常 172
7.3.3 得到失敗對象 173
7.3.4 覆蓋的方法 173
7.3.5 一個處理JDO異常的普遍策略 173
7.3.6 各種JDO異常 175
7.3.7 JDO實現可能拋出的其他運行時異常 179
7.3.8 幾個處理JDO異常的代碼示例 180
7.4 小結 183
第8章 使用JDO學習更多知識 184
8.1 Ant構建腳本 184
8.2 開始 186
8.2.1 第一步:下載開放的源JDO學習工具 186
8.2.2 第二步:如有必要,下載Java SDK 186
8.2.3 第三步:如有必要,下載Ant 186
8.2.4 第四步:如有必要,下載J2EE Jar 186
8.2.5 第五步:下載JDO實現 187
8.2.6 第六步:配置構建屬性 187
8.2.7 第七步:測試構建環(huán)境 188
8.3 Hello,JDO 189
8.4 詢問PersistenceManagerFactory 190
8.5 MegaCups公司的消費Java 192
8.6 控制臺用戶接口 194
8.7 查詢小鎮(zhèn)圖書館 195
8.7.1 構建Library程序 196
8.7.2 使用Library命令 196
8.7.3 運行Library程序中的查詢 197
8.8 監(jiān)測持久蘋果的狀態(tài) 199
8.8.1 構建StateTracker程序 200
8.8.2 以StateTracker命令開始 200
8.8.3 簡單介紹其他StateTracker命令 204
8.9 使用商業(yè)實現 205
8.9.1 使用Kodo實現 205
8.9.2 使用Lido實現 205
8.9.3 使用IntelliBO實現 206
8.10 小結 206
第9章 在Swing應用程序中使用JDO 207
9.1 構建租賃Swing應用程序 207
9.2 對原型預訂系統(tǒng)的要求 208
9.2.1 用例1:管理員清除數據存儲 208
9.2.2 用例2:管理員初始化數據存儲 208
9.2.3 用例3:匿名用戶標識他自己 208
9.2.4 用例4:有標識用戶丟棄他的標識 209
9.2.5 用例5:用戶查看可用的租賃 209
9.2.6 用例6:有標識用戶進行一次預訂 209
9.2.7 用例7:有標識用戶查看他的預訂 209
9.2.8 用例8:有標識用戶取消某些預訂 209
9.2.9 用例9:有標識用戶改變他的預訂 209
9.2.10 用例10:系統(tǒng)探測相沖突的預訂 210
9.2.11 用例11:用戶查看租賃單元的附加信息 210
9.3 測試租賃Swing客戶 210
9.4 在租賃Swing客戶中遇到相沖突的改變 211
9.5 設計租賃Swing應用程序 213
9.5.1 租賃Swing應用程序的應用程序數據類 213
9.5.2 租賃Swing應用程序中的應用程序數據服務 215
9.5.3 租賃Swing應用程序中的應用程序數據模型 217
9.5.4 租賃Swing應用程序的總體體系結構 218
9.6 小結 219
第10章 在Web應用程序中使用JDO 220
10.1 為Tomcat配置構建環(huán)境 220
10.1.1 第八步:安裝Tomcat Servlet容器 220
10.1.2 第九步:安裝JSP標準標簽庫 220
10.1.3 第十步:配置構建環(huán)境 221
10.2 構建租賃Web應用程序 221
10.3 使用租賃Web應用程序 223
10.3.1 啟動兩個瀏覽器客戶 224
10.3.2 在租賃Web客戶中遇到相沖突的預訂 225
10.4 Web應用程序的一般性設計問題 226
10.5 租賃Web應用程序中的MVC模式 227
10.6 設計JDO在Web應用程序中的使用 228
10.6.1 會話串行化在servlet容器中的任務 229
10.6.2 設計目標 229
10.6.3 避免付出垃圾回收的代價 231
10.7 One-PM-per-Request設計 231
10.8 One-PM-per-Session設計 243
10.9 One-PM-per-Update設計 244
10.10 小結 245
第11章 在企業(yè)JavaBean中使用JDO 246
11.1 為JBoss配置構建環(huán)境 247
11.1.1 第十一步:安裝JBoss 247
11.1.2 第十二步:配置JBoss和Tomcat,以使它們能一起使用 247
11.1.3 第十三步:配置構建屬性 248
11.1.4 第十四步:替換JDO參考實現 248
11.1.5 第十五步:配置JDO連接工廠 249
11.1.6 第十六步:配置JNDI 250
11.2 構建租賃企業(yè)應用程序 250
11.2.1 補充幾個小技巧 251
11.2.2 使用租賃企業(yè)應用程序 252
11.3 租賃企業(yè)應用程序的設計 252
11.3.1 預訂服務EJB的設計 252
11.3.2 預訂服務中被封裝的改變 253
11.3.3 對預訂服務所作的公有改變 254
11.3.4 對應用程序數據類所作的改變 254
11.3.5 對ReservationServlet控制器所作的改變 255
11.3.6 還有其他改變嗎 256
11.3.7 提高復雜性 256
11.4 把JDO用于其他類型的EJB 256
11.4.1 構建引證服務器EJB 256
11.4.2 使用引證服務器 257
11.5 小結 258
術語表 259

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號