注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JAVA及其相關(guān)Hibernate實(shí)戰(zhàn)(第二版)

Hibernate實(shí)戰(zhàn)(第二版)

Hibernate實(shí)戰(zhàn)(第二版)

定 價(jià):¥99.00

作 者: (德國)Christian Bauer、(澳大利亞)Gavin King 著;楊春花、彭永康 譯
出版社: 人民郵電出版社
叢編項(xiàng): 圖靈程序設(shè)計(jì)叢書
標(biāo) 簽: J2EE

ISBN: 9787115174482 出版時(shí)間: 2008-04-01 包裝: 平裝
開本: 16 頁數(shù): 607 pages 字?jǐn)?shù):  

內(nèi)容簡介

  《圖靈程序設(shè)計(jì)叢書·Hibernate實(shí)戰(zhàn)(第2版)》是毋庸置疑的Hibernate和ORM(對象/關(guān)系映射)權(quán)威著作,由包括Hibernate之父在內(nèi)的兩位核心開發(fā)人員親自執(zhí)筆,詳細(xì)講述了Hibernate 3.2、Java Persistence和EJB 3.0標(biāo)準(zhǔn)。《圖靈程序設(shè)計(jì)叢書·Hibernate實(shí)戰(zhàn)(第2版)》通過一個(gè)應(yīng)用將數(shù)百個(gè)例子融合起來,不僅深入剖析了Hibernate 3.2和Java Persistence豐富的編程模型。還深刻闡述了數(shù)據(jù)庫設(shè)計(jì)、ORM和優(yōu)化等方面的基本原則、策略和最佳實(shí)踐。書中處處閃爍著作者超凡的真知灼見,將大大升華讀者對ORM乃至企業(yè)級應(yīng)用開發(fā)的理解。

作者簡介

  Christian Bauer,Hibernate核心開發(fā)人員,并負(fù)責(zé)維護(hù)Hibernate的文檔與網(wǎng)站。目前他是Red Hat公司JBoss部門負(fù)責(zé)Hibernate、EJB 3.0和Seam的產(chǎn)品經(jīng)理。

圖書目錄

第一部分  從Hibernate和EJB 3.0開始
第1章  理解對象/關(guān)系持久化 2
1.1  什么是持久化 3
1.1.1  關(guān)系數(shù)據(jù)庫 3
1.1.2  理解SQL 4
1.1.3  在Java中使用SQL 5
1.1.4  面向?qū)ο髴?yīng)用程序中的持久化 5
1.2  范式不匹配 6
1.2.1  粒度問題 8
1.2.2  子類型問題 9
1.2.3  同一性問題 10
1.2.4  與關(guān)聯(lián)相關(guān)的問題 11
1.2.5  數(shù)據(jù)導(dǎo)航的問題 12
1.2.6  不匹配的代價(jià) 13
1.3  持久層和其他層 14
1.3.1  分層架構(gòu) 14
1.3.2  用SQL/JDBC手工編寫持久層 15
1.3.3  使用序列化 16
1.3.4  面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng) 16
1.3.5  其他選項(xiàng) 17
1.4  ORM 17
1.4.1  什么是ORM 17
1.4.2  一般的ORM問題 19
1.4.3  為什么選擇ORM 19
1.4.4  Hibernate、EJB 3和JPA簡介 21
1.5  小結(jié) 24
第2章  啟動(dòng)項(xiàng)目 25
2.1  啟動(dòng)Hibernate項(xiàng)目 25
2.1.1  選擇開發(fā)過程 26
2.1.2  建立項(xiàng)目 28
2.1.3  Hibernate配置和啟動(dòng) 34
2.1.4  運(yùn)行和測試應(yīng)用程序 42
2.2  啟動(dòng)Java Persistence項(xiàng)目 48
2.2.1  使用Hibernate Annotations 48
2.2.2  使用Hibernate EntityManager 51
2.2.3  引入EJB組件 57
2.2.4  切換到Hibernate接口 62
2.3  反向工程遺留數(shù)據(jù)庫 64
2.3.1  創(chuàng)建數(shù)據(jù)庫配置 64
2.3.2  定制反向工程 65
2.3.3  生成Java源代碼 67
2.4  與Java EE服務(wù)整合 69
2.4.1  與JTA整合 70
2.4.2  JNDI綁定的SessionFactory 73
2.4.3  JMX服務(wù)部署 75
2.5  小結(jié) 75
第3章  領(lǐng)域模型和元數(shù)據(jù) 77
3.1  CaveatEmptor應(yīng)用程序 77
3.1.1  分析業(yè)務(wù)領(lǐng)域 78
3.1.2  CaveatEmptor領(lǐng)域模型 78
3.2  實(shí)現(xiàn)領(lǐng)域模型 80
3.2.1  處理關(guān)注點(diǎn)滲漏 81
3.2.2  透明和自動(dòng)持久化 81
3.2.3  編寫POJO和持久化實(shí)體類 82
3.2.4  實(shí)現(xiàn)POJO關(guān)聯(lián) 84
3.2.5  把邏輯添加到訪問方法 88
3.3  ORM元數(shù)據(jù) 89
3.3.1  XML中的元數(shù)據(jù) 89
3.3.2  基于注解的元數(shù)據(jù) 91
3.3.3  使用XDoclet 95
3.3.4  處理全局的元數(shù)據(jù) 97
3.3.5  運(yùn)行時(shí)操作元數(shù)據(jù) 101
3.4  其他實(shí)體表示法 102
3.4.1  創(chuàng)建動(dòng)態(tài)的應(yīng)用程序 103
3.4.2  表示XML中的數(shù)據(jù) 108
3.5  小結(jié) 112
第二部分 映射概念和策略
第4章  映射持久化類 114
4.1  理解實(shí)體和值類型 114
4.1.1  細(xì)粒度的領(lǐng)域模型 114
4.1.2  定義概念 115
4.1.3  識(shí)別實(shí)體和值類型 115
4.2  映射帶有同一性的實(shí)體 117
4.2.1  理解Java同一性和等同性 117
4.2.2  處理數(shù)據(jù)庫同一性 117
4.2.3  數(shù)據(jù)庫主鍵 120
4.3  類映射選項(xiàng) 123
4.3.1  動(dòng)態(tài)的SQL生成 123
4.3.2  使實(shí)體不可變 124
4.3.3  給查詢命名實(shí)體 125
4.3.4  聲明包名稱 125
4.3.5  用引號把SQL標(biāo)識(shí)符括起來 126
4.3.6  實(shí)現(xiàn)命名約定 126
4.4  細(xì)粒度的模型和映射 127
4.4.1  映射基礎(chǔ)屬性 128
4.4.2  映射組件 133
4.5  小結(jié) 137
第5章  繼承和定制類型 139
5.1  映射類繼承 139
5.1.1  每個(gè)帶有隱式多態(tài)的具體類一張表 140
5.1.2  每個(gè)帶有聯(lián)合的具體類一張表 142
5.1.3  每個(gè)類層次結(jié)構(gòu)一張表 145
5.1.4  每個(gè)子類一張表 148
5.1.5  混合繼承策略 151
5.1.6  選擇策略 154
5.2  Hibernate類型系統(tǒng) 155
5.2.1  概述實(shí)體和值類型 155
5.2.2  內(nèi)建的映射類型 156
5.2.3  使用映射類型 160
5.3  創(chuàng)建定制的映射類型 161
5.3.1  考慮定制的映射類型 161
5.3.2  擴(kuò)展點(diǎn) 162
5.3.3  定制映射類型的案例 163
5.3.4  創(chuàng)建UserType 164
5.3.5  創(chuàng)建CompositeUserType 166
5.3.6  參數(shù)化定制類型 169
5.3.7  映射枚舉 171
5.4  小結(jié) 175
第6章  映射集合和實(shí)體關(guān)聯(lián) 177
6.1  值類型的set、bag、list和map 177
6.1.1  選擇集合接口 178
6.1.2  映射set 179
6.1.3  映射標(biāo)識(shí)符bag 180
6.1.4  映射list 181
6.1.5  映射map 182
6.1.6  排序集合和有序集合 183
6.2  組件的集合 185
6.2.1  編寫組件類 185
6.2.2  映射集合 186
6.2.3  啟用雙向?qū)Ш健?86
6.2.4  避免非空列 187
6.3  用注解映射集合 189
6.3.1  基本的集合映射 189
6.3.2  排序集合和有序集合 190
6.3.3  映射嵌入式對象的集合 191
6.4  映射父/子關(guān)系 192
6.4.1  多樣性 193
6.4.2  最簡單的可能關(guān)聯(lián) 193
6.4.3  使關(guān)聯(lián)雙向 195
6.4.4  級聯(lián)對象狀態(tài) 197
6.5  小結(jié) 203
第7章  高級實(shí)體關(guān)聯(lián)映射 204
7.1  單值的實(shí)體關(guān)聯(lián) 204
7.1.1  共享的主鍵關(guān)聯(lián) 205
7.1.2  一對一的外鍵關(guān)聯(lián) 208
7.1.3  用聯(lián)結(jié)表映射 210
7.2  多值的實(shí)體關(guān)聯(lián) 213
7.2.1  一對多關(guān)聯(lián) 214
7.2.2  多對多關(guān)聯(lián) 219
7.2.3  把列添加到聯(lián)結(jié)表 223
7.2.4  映射map 229
7.3  多態(tài)關(guān)聯(lián) 231
7.3.1  多態(tài)的多對一關(guān)聯(lián) 232
7.3.2  多態(tài)集合 233
7.3.3  對聯(lián)合的多態(tài)關(guān)聯(lián) 234
7.3.4  每個(gè)具體類一張多態(tài)表 236
7.4  小結(jié) 238
第8章  遺留數(shù)據(jù)庫和定制SQL 239
8.1  整合遺留數(shù)據(jù)庫 239
8.1.1  處理主鍵 240
8.1.2  帶有公式的任意聯(lián)結(jié)條件 250
8.1.3  聯(lián)結(jié)任意的表 254
8.1.4  使用觸發(fā)器 257
8.2  定制SQL 260
8.2.1  編寫定制CRUD語句 261
8.2.2  整合存儲(chǔ)過程和函數(shù) 265
8.3  改進(jìn)Schema DDL 271
8.3.1  定制SQL名稱和數(shù)據(jù)類型 271
8.3.2  確保數(shù)據(jù)一致性 273
8.3.3  添加領(lǐng)域約束和列約束 274
8.3.4  表級約束 276
8.3.5  數(shù)據(jù)庫約束 278
8.3.6  創(chuàng)建索引 279
8.3.7  添加輔助的DDL 280
8.4  小結(jié) 282
第三部分 會(huì)話對象處理
第9章  使用對象 284
9.1  持久化生命周期 284
9.1.1  對象狀態(tài) 285
9.1.2  持久化上下文 287
9.2  對象同一性和等同性 289
9.2.1  引入對話 289
9.2.2  對象同一性的范圍 290
9.2.3  脫管對象的同一性 292
9.2.4  擴(kuò)展持久化上下文 296
9.3  Hibernate接口 296
9.3.1  保存和加載對象 297
9.3.2  使用脫管對象 302
9.3.3  管理持久化上下文 306
9.4  JPA 308
9.4.1  保存和加載對象 309
9.4.2  使用脫管的實(shí)體實(shí)例 312
9.5  在EJB組件中使用Java Persistence 315
9.5.1  注入EntityManager 315
9.5.2  查找EntityManager 317
9.5.3  訪問EntityManagerFactory 318
9.6  小結(jié) 319
第10章  事務(wù)和并發(fā) 320
10.1  事務(wù)本質(zhì) 320
10.1.1  數(shù)據(jù)庫和系統(tǒng)事務(wù) 321
10.1.2  Hibernate應(yīng)用程序中的事務(wù) 323
10.1.3  使用Java Persistence的事務(wù) 331
10.2  控制并發(fā)訪問 334
10.2.1  理解數(shù)據(jù)庫級并發(fā) 334
10.2.2  樂觀并發(fā)控制 338
10.2.3  獲得額外的隔離性保證 343
10.3  非事務(wù)數(shù)據(jù)訪問 346
10.3.1  揭開自動(dòng)提交的神秘面紗 346
10.3.2  使用Hibernate非事務(wù)地工作 347
10.3.3  使用JTA的可選事務(wù) 349
10.4  小結(jié) 349
第11章  實(shí)現(xiàn)對話 351
11.1  傳播Hibernate Session 351
11.1.1  Session傳播的用例 352
11.1.2  通過線程局部傳播 353
11.1.3  利用JTA傳播 355
11.1.4  利用EJB傳播 356
11.2  利用Hibernate的對話 357
11.2.1  提供對話保證 357
11.2.2  利用脫管對象的對話 358
11.2.3  給對話擴(kuò)展Session 360
11.3  使用JPA的對話 366
11.3.1  Java SE中的持久化上下文傳播 367
11.3.2  在對話中合并脫管對象 368
11.3.3  在Java SE中擴(kuò)展持久化上下文 369
11.4  使用EJB 3.0的對話 373
11.4.1  使用EJB的上下文傳播 373
11.4.2  利用EJB擴(kuò)展持久化上下文 376
11.5  小結(jié) 380
第12章  有效修改對象 381
12.1  傳播性持久化 381
12.1.1  按可到達(dá)性持久化 382
12.1.2  把級聯(lián)應(yīng)用到關(guān)聯(lián) 383
12.1.3  使用傳播性狀態(tài) 386
12.1.4  利用JPA的傳播性關(guān)聯(lián) 391
12.2  大批量和批量操作 392
12.2.1  使用HQL和JPA QL的大批量語句 392
12.2.2  利用批量處理 395
12.2.3  使用無狀態(tài)的會(huì)話 397
12.3  數(shù)據(jù)過濾和攔截 398
12.3.1  動(dòng)態(tài)數(shù)據(jù)過濾 399
12.3.2  攔截Hibernate事件 402
12.3.3  內(nèi)核事件系統(tǒng) 408
12.3.4  實(shí)體監(jiān)聽器和回調(diào) 410
12.4  小結(jié) 411
第13章  優(yōu)化抓取和高速緩存 412
13.1  定義全局抓取計(jì)劃 412
13.1.1  對象獲取選項(xiàng) 412
13.1.2  延遲的默認(rèn)抓取計(jì)劃 415
13.1.3  理解代理 415
13.1.4  禁用代理生成 417
13.1.5  關(guān)聯(lián)和集合的即時(shí)加載 418
13.1.6  通過攔截延遲加載 420
13.2  選擇抓取策略 422
13.2.1  批量預(yù)抓取數(shù)據(jù) 422
13.2.2  通過子查詢預(yù)抓取集合 424
13.2.3  通過聯(lián)結(jié)即時(shí)抓取 425
13.2.4  給二級表優(yōu)化抓取 428
13.2.5  優(yōu)化指導(dǎo)方針 430
13.3  高速緩存基本原理 436
13.3.1  高速緩存策略和范圍 436
13.3.2  Hibernate高速緩存架構(gòu) 439
13.4  高速緩存實(shí)踐 442
13.4.1  選擇并發(fā)控制策略 442
13.4.2  理解高速緩存區(qū)域 444
13.4.3  設(shè)置本地的高速緩存提供程序 445
13.4.4  設(shè)置重復(fù)的高速緩存 446
13.4.5  控制二級高速緩存 449
13.5  小結(jié) 451
第14章  利用HQL和JPA QL查詢 452
14.1  創(chuàng)建和運(yùn)行查詢 452
14.1.1  準(zhǔn)備查詢 453
14.1.2  執(zhí)行查詢 460
14.1.3  使用具名查詢 463
14.2  基本的HQL和JPA QL查詢 465
14.2.1  選擇 466
14.2.2  限制 467
14.2.3  投影 472
14.3  聯(lián)結(jié)、報(bào)表查詢和子查詢 473
14.3.1  聯(lián)結(jié)關(guān)系和關(guān)聯(lián) 473
14.3.2  報(bào)表查詢 482
14.3.3  利用子查詢 485
14.4  小結(jié) 487
第15章  高級查詢選項(xiàng) 488
15.1  利用條件和示例查詢 488
15.1.1  基本的條件查詢 489
15.1.2  聯(lián)結(jié)和動(dòng)態(tài)抓取 493
15.1.3  投影和報(bào)表查詢 497
15.1.4  按示例查詢 500
15.2  利用原生的SQL查詢 503
15.2.1  自動(dòng)的結(jié)果集處理 503
15.2.2  獲取標(biāo)量值 504
15.2.3  Java Persistence中的原生SQL 505
15.3  過濾集合 507
15.4  高速緩存查詢結(jié)果 508
15.4.1  啟用查詢結(jié)果高速緩存 509
15.4.2  理解查詢高速緩存 509
15.4.3  什么時(shí)候使用查詢高速緩存 510
15.4.4  自然標(biāo)識(shí)符高速緩存查找 511
15.5  小結(jié) 512
第16章  創(chuàng)建和測試分層的應(yīng)用程序 513
16.1  Web應(yīng)用程序中的Hibernate 513
16.1.1  用例簡介 514
16.1.2  編寫控制器 514
16.1.3  OSIV模式 516
16.1.4  設(shè)計(jì)巧妙的領(lǐng)域模型 518
16.2  創(chuàng)建持久層 521
16.2.1  泛型的數(shù)據(jù)訪問對象模式 521
16.2.2  實(shí)現(xiàn)泛型CRUD接口 523
16.2.3  實(shí)現(xiàn)實(shí)體DAO 525
16.2.4  利用數(shù)據(jù)訪問對象 526
16.3  命令模式簡介 529
16.3.1  基礎(chǔ)接口 530
16.3.2  執(zhí)行命令對象 531
16.3.3  命令模式的變形 533
16.4  利用EJB 3.0設(shè)計(jì)應(yīng)用程序 534
16.4.1  利用有狀態(tài)的bean實(shí)現(xiàn)會(huì)話 534
16.4.2  利用EJB編寫DAO 536
16.4.3  利用依賴注入 537
16.5  測試 538
16.5.1  理解不同種類的測試 539
16.5.2  TestNG簡介 539
16.5.3  測試持久層 542
16.5.4  考慮性能基準(zhǔn) 549
16.6  小結(jié) 550
第17章  JBoss Seam簡介 551
17.1  Java EE 5.0編程模型 551
17.1.1  JSF詳解 552
17.1.2  EJB 3.0詳解 553
17.1.3  用JSF和EJB 3.0編寫Web應(yīng)用程序 554
17.1.4  分析應(yīng)用程序 562
17.2  用Seam改善應(yīng)用程序 564
17.2.1  配置Seam 565
17.2.2  將頁面綁定到有狀態(tài)的Seam組件 566
17.2.3  分析Seam應(yīng)用程序 570
17.3  理解上下文組件 575
17.3.1  編寫登錄頁面 575
17.3.2  創(chuàng)建組件 577
17.3.3  給上下文變量起別名 579
17.3.4  完成登錄/注銷特性 580
17.4  驗(yàn)證用戶輸入 583
17.4.1  Hibernate Validator簡介 584
17.4.2  創(chuàng)建注冊頁面 584
17.4.3  用Seam實(shí)現(xiàn)國際化 591
17.5  利用Seam簡化持久化 594
17.5.1  實(shí)現(xiàn)對話 595
17.5.2  讓Seam管理持久化上下文 601
17.6  小結(jié) 604
附錄A  SQL基礎(chǔ)知識(shí) 606
附錄B  映射快速參考 609

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號