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

精通Hibernate:Java對象持久化技術詳解

精通Hibernate:Java對象持久化技術詳解

定 價:¥59.00

作 者: 孫衛(wèi)琴編著
出版社: 電子工業(yè)出版社
叢編項: 開發(fā)專家之Sun One
標 簽: Java

ISBN: 9787121011368 出版時間: 2005-05-01 包裝: 平裝
開本: 26cm+光盤1片 頁數: 600 字數:  

內容簡介

  孫衛(wèi)琴的計算機書籍創(chuàng)作心得:如果說書的結構好比房屋的框架,書的內容則好比房屋的具體組成元素。計算機書的內容的形式分為:文字、表格、圖和范例。為了把某種知識講清楚,常常需要綜合使用這四種形式的元素......:繼《Tomcat與JavaWeb開發(fā)技術詳解(含光盤)》和《精通Struts:基于MVC的JavaWeb設計與開發(fā)(含光盤)》之后,應廣大讀者的強烈要求,孫衛(wèi)琴的又一力作《精通Hibernate:Java對象持久化技術詳解》,正處在迎接面市的準備當中。Hibernate是一個基于Java的開放源代碼的持久化中間件,它對JDBC作了輕量級封裝,不僅提供ORM映射服務,還提供數據查詢和數據緩存功能,Java開發(fā)人員可以方便的通過HibernateAPI來操縱數據庫。現在,越來越多的Java開發(fā)人員把Hibernate作為企業(yè)應用和關系數據庫之間的中間件,以節(jié)省和對象持久化有關的30%的JDBC編程工作量。2005年,Hibernate作為優(yōu)秀的類庫和組件,榮獲了第15屆Jolt大獎。Hibernate之所以能夠流行,歸功于它特有的優(yōu)勢。本書結合大量典型的實例,詳細介紹了運用目前最成熟的Hibernate2.1版本進行Java對象持久化的技術。Hibernate是連接Java對象模型和關系數據模型的橋梁,通過本書,讀者不僅能掌握用Hibernate工具對這兩種模型進行映射的技術,還能獲得設計與開發(fā)Java對象模型和關系數據模型的先進經驗。

作者簡介

  孫衛(wèi)琴,1997年畢業(yè)于上海交通大學,隨后一直從事基于Java軟件開發(fā)工作,2003。年作為訪問學者,赴美國參與J2EE項目的研發(fā),在此期間對Java開放源代碼項目產生了濃厚的興趣。2002年開始Java技術領域的圖書創(chuàng)作。 代表著作有:《精通Hiberuate:Java對象持久化技術詳解》2005; 《精通Struts:基于MVC的Java Web設計與開發(fā)》2004;《Tomcat與Java Web開發(fā)技術詳解》2004;《Java 2認證試指南與試題解析》2002。

圖書目錄

第1章 Java對象持久化技術概述 1
1.1 應用程序的分層體系結構 1
1.1.1 區(qū)分物理層和邏輯層 2
1.1.2 軟件層的特征 3
1.1.3 軟件分層的優(yōu)點 4
1.1.4 軟件分層的缺點 4
1.1.5 Java應用的持久化層 5
1.2 軟件的模型 6
1.2.1 概念模型 7
1.2.2 關系數據模型 8
1.2.3 域模型 10
1.2.4 域對象 10
1.2.5 域對象之間的關系 11
1.2.6 域對象的持久化概念 16
1.3 直接通過JDBC API來持久化實體域對象 17
1.4 ORM簡介 25
1.4.1 對象-關系映射的概念 27
1.4.2 ORM中間件的基本使用方法 29
1.4.3 常用的ORM中間件 32
1.5 實體域對象的其他持久化模式 32
1.5.1 主動域對象模式 33
1.5.2 JDO模式 35
1.5.3 CMP模式 35
1.6 Hibernate API簡介 36
1.6.1 Hibernate的核心接口 37
1.6.2 回調接口 39
1.6.3 Hibernate映射類型接口 40
1.6.4 可供擴展的接口 41
1.7 小結 42
第2章 Hibernate入門 45
2.1 創(chuàng)建Hibernate的配置文件 46
2.2 創(chuàng)建持久化類 47
2.3 創(chuàng)建數據庫Schema 49
2.4 創(chuàng)建對象-關系映射文件 50
2.4.1 映射文件的文檔類型定義(DTD) 51
2.4.2 把Customer持久化類映射到CUSTOMERS表 52
2.5 通過HibernateAPI操縱數據庫 56
2.5.1 Hibernate的初始化 59
2.5.2 訪問Hibernate的
Session接口 61
2.6 運行helloapp應用 65
2.6.1 創(chuàng)建運行本書范例的
系統(tǒng)環(huán)境 65
2.6.2 創(chuàng)建helloapp應用的目錄結構 69
2.6.3 把helloapp應用作為獨立應用程序運行 70
2.6.4 把helloapp應用作為Java Web應用運行 74
2.7 小結 76
第3章 hbm2java和hbm2ddl工具 79
3.1 創(chuàng)建對象-關系映射文件 79
3.1.1 定制持久化類 81
3.1.2 定制數據庫表 84
3.2 建立項目的目錄結構 87
3.3 運行hbm2java工具 90
3.4 運行hbm2ddl工具 92
3.5 小結 95
第4章 對象-關系映射基礎 97
4.1 持久化類的屬性及訪問方法 97
4.1.1 基本類型屬性和包裝類型屬性 98
4.1.2 Hibernate訪問持久化類屬性的策略 100
4.1.3 在持久化類的訪問方法中加入程序邏輯 100
4.1.4 設置派生屬性 103
4.1.5 控制insert和update語句 104
4.2 處理SQL引用標識符 105
4.3 創(chuàng)建命名策略 106
4.4 設置命名Schema 108
4.5 設置類的包名 109
4.6 運行本章的范例程序 110
4.7 小結 117
第5章 映射對象標識符 119
5.1 關系數據庫按主鍵區(qū)分不同的記錄 119
5.1.1 把主鍵定義為自動增長標識符類型 119
5.1.2 從序列(Sequence)中獲取自動增長的標識符 120
5.2 Java語言按內存地址區(qū)分不同的對象 121
5.3 Hibernate用對象標識符(OID)來區(qū)分對象 122
5.4 Hibernate的內置標識符生成器的用法 124
5.4.1 increment標識符生成器 127
5.4.2 identity標識符生成器 130
5.4.3 sequence標識符生成器 131
5.4.4 hilo標識符生成器 132
5.4.5 native標識符生成器 134
5.5 映射自然主鍵 135
5.5.1 映射單個自然主鍵 135
5.5.2 映射復合自然主鍵 136
5.6 小結 140
第6章 映射一對多關聯關系 141
6.1 建立多對一的單向關聯關系 142
6.1.1 <many-to-one>元素的not-null屬性 147
6.1.2 級聯保存和更新 149
6.2 映射一對多雙向關聯關系 150
6.2.1 <set>元素的inverse屬性 155
6.2.2 級聯刪除 158
6.2.3 父子關系 158
6.3 映射一對多雙向自身關聯關系 160
6.4 改進持久化類 166
6.5 小結 171
第7章 操縱持久化對象 173
7.1 Java對象在JVM中的生命周期 173
7.2 理解Session的緩存 175
7.3 在Hibernate應用中Java對象的狀態(tài) 178
7.3.1 臨時對象的特征 179
7.3.2 持久化對象的特征 180
7.3.3 游離對象的特征 181
7.4 Session的保存、更新、刪除和查詢方法 182
7.4.1 Session的save()方法 182
7.4.2 Session的update()方法 184
7.4.3 Session的saveOrUpdate()方法 187
7.4.4 Session的load()和get()方法 188
7.4.5 Session的delete()方法 188
7.5 級聯操縱對象圖 189
7.5.1 級聯保存臨時對象 193
7.5.2 更新持久化對象 194
7.5.3 持久化臨時對象 194
7.5.4 更新游離對象 196
7.5.5 遍歷對象圖 197
7.6 與觸發(fā)器協(xié)同工作 198
7.7 利用攔截器(Interceptor)生成審計日志 200
7.8 小結 207
第8章 映射組成關系 209
8.1 建立精粒度對象模型 210
8.2 建立粗粒度關系數據模型 211
8.3 映射組成關系 212
8.3.1 區(qū)分值(Value)類型和實體(Entity)類型 215
8.3.2 在應用程序中訪問具有組成關系的持久化類 216
8.4 映射復合組成關系 220
8.5 小結 222
第9章 Hibernate的映射類型 223
9.1 Hibernate的內置映射類型 223
9.1.1 Java基本類型的Hibernate映射類型 223
9.1.2 Java時間和日期類型的Hibernate映射類型 224
9.1.3 Java大對象類型的Hibernate映射類型 225
9.1.4 JDK自帶的個別Java類的Hibernate映射類型 226
9.1.5 使用Hibernate內置映射類型 227
9.2 客戶化映射類型 229
9.2.1 用客戶化映射類型取代Hibernate組件 232
9.2.2 用UserType映射枚舉類型 235
9.2.3 實現CompositeUserType接口 239
9.3 運行本章范例程序 243
9.4 小結 253
第10章 Hibernate的檢索策略 255
10.1 Hibernate的檢索策略簡介 256
10.2 類級別的檢索策略 259
10.2.1 立即檢索 260
10.2.2 延遲檢索 260
10.3 一對多和多對多關聯的檢索策略 263
10.3.1 立即檢索 264
10.3.2 延遲檢索 264
10.3.3 批量延遲檢索和批量立即檢索 265
10.3.4 迫切左外連接檢索 267
10.4 多對一和一對一關聯的檢索策略 268
10.4.1 迫切左外連接檢索 269
10.4.2 延遲檢索 271
10.4.3 立即檢索 272
10.4.4 批量延遲檢索和批量立即檢索 273
10.5 Hibernate對迫切左外連接檢索的限制 277
10.6 在應用程序中顯式指定迫切左外連接檢索策略 279
10.7 小結 279
第11章 Hibernate的檢索方式 281
11.1 Hibernate的檢索方式簡介 281
11.1.1 HQL檢索方式 284
11.1.2 QBC檢索方式 285
11.1.3 SQL檢索方式 288
11.1.4 關于本章范例程序 288
11.1.5 使用別名 289
11.1.6 多態(tài)查詢 290
11.1.7 對查詢結果排序 291
11.1.8 分頁查詢 291
11.1.9 檢索單個對象 293
11.1.10 在HQL查詢語句中綁定參數 294
11.1.11 在映射文件中定義命名查詢語句 298
11.2 設定查詢條件 299
11.2.1 比較運算 300
11.2.2 范圍運算 301
11.2.3 字符串模式匹配 302
11.2.4 邏輯運算 303
11.3 連接查詢 304
11.3.1 默認情況下關聯級別的運行時檢索策略 305
11.3.2 迫切左外連接 306
11.3.3 左外連接 309
11.3.4 內連接 313
11.3.5 迫切內連接 317
11.3.6 隱式內連接 319
11.3.7 右外連接 320
11.3.8 使用SQL風格的交叉連接和隱式內連接 322
11.3.9 關聯級別運行時的檢索策略 323
11.4 報表查詢 325
11.4.1 投影查詢 325
11.4.2 使用聚集函數 328
11.4.3 分組查詢 329
11.4.4 優(yōu)化報表查詢的性能 332
11.5 高級查詢技巧 332
11.5.1 動態(tài)查詢 332
11.5.2 集合過濾 334
11.5.3 子查詢 337
11.5.4 本地SQL查詢 339
11.6 查詢性能優(yōu)化 340
11.6.1 iterate()方法 340
11.6.2 查詢緩存 341
11.7 小結 342
第12章 數據庫事務與并發(fā) 345
12.1 數據庫事務的概念 345
12.2 聲明事務邊界 346
12.2.1 在mysql.exe程序中聲明事務 348
12.2.2 通過JDBC API聲明事務邊界 350
12.2.3 通過Hibernate API聲明事務邊界 351
12.3 多個事務并發(fā)運行時的并發(fā)問題 355
12.3.1 第一類丟失更新 357
12.3.2 臟讀 357
12.3.3 虛讀 358
12.3.4 不可重復讀 358
12.3.5 第二類丟失更新 359
12.4 數據庫系統(tǒng)的鎖的基本原理 360
12.4.1 鎖的多粒度性及自動鎖升級 360
12.4.2 鎖的類型和兼容性 361
12.4.3 死鎖及其防止辦法 362
12.5 數據庫的事務隔離級別 364
12.5.1 在mysql.exe程序中設置隔離級別 366
12.5.2 在應用程序中設置隔離級別 366
12.6 在應用程序中采用悲觀鎖和樂觀鎖 366
12.6.1 利用數據庫系統(tǒng)的獨占鎖來實現悲觀鎖 367
12.6.2 由應用程序實現悲觀鎖 373
12.6.3 利用Hibernate的版本控制來實現樂觀鎖 374
12.6.4 實現樂觀鎖的其他方法 380
12.7 小結 381
第13章 管理Hibernate的緩存 383
13.1 緩存的基本原理 383
13.1.1 持久化層的緩存的范圍 384
13.1.2 持久化層的緩存的并發(fā)訪問策略 386
13.2 Hibernate的二級緩存結構 388
13.3 管理Hibernate的第一級緩存 389
13.4 管理Hibernate的第二級緩存 393
13.4.1 配置進程范圍內的第二級緩存 394
13.4.2 配置群集范圍內的第二級緩存 398
13.4.3 在應用程序中管理第二級緩存 401
13.5 運行本章的范例程序 402
13.6 小結 406
第14章 映射繼承關系 407
14.1 繼承關系樹的每個具體類對應一個表 408
14.1.1 創(chuàng)建映射文件 409
14.1.2 操縱持久化對象 411
14.2 繼承關系樹的根類
對應一個表 414
14.2.1 創(chuàng)建映射文件 415
14.2.2 操縱持久化對象 417
14.3 繼承關系樹的每個類
對應一個表 418
14.3.1 創(chuàng)建映射文件 419
14.3.2 操縱持久化對象 421
14.4 選擇繼承關系的映射
方式 423
14.5 映射多對一多態(tài)關聯 428
14.6 小結 430
第15章 Java集合類 433
15.1 Set(集) 434
15.1.1 Set的一般用法 434
15.1.2 HashSet類 435
15.1.3 TreeSet類 437
15.1.4 向Set中加入持久化類的對象 441
15.2 List(列表) 442
15.3 Map(映射) 444
15.4 小結 448
第16章 映射值類型集合 449
16.1 映射Set(集) 449
16.2 映射Bag(包) 453
16.3 映射List(列表) 456
16.4 映射Map 459
16.5 對集合排序 462
16.5.1 在數據庫中對集合排序 462
16.5.2 在內存中對集合排序 464
16.6 映射組件類型集合 467
16.7 小結 474
第17章 映射實體關聯關系 475
17.1 映射一對一關聯 475
17.1.1 按照外鍵映射 476
17.1.2 按照主鍵映射 480
17.2 映射單向多對多關聯 483
17.3 映射雙向多對多關聯關系 488
17.3.1 關聯兩端使用<set>元素 488
17.3.2 在inverse端使用<bag>元素 490
17.3.3 使用組件類集合 494
17.3.4 把多對多關聯分解為兩個一對多關聯 499
17.4 小結 501
第18章 Hibernate高級配置 503
18.1 配置數據庫連接池 503
18.1.1 使用默認的數據庫連接池 506
18.1.2 使用配置文件指定的數據庫連接池 507
18.1.3 從容器中獲得數據源 508
18.1.4 由Java應用本身提供數據庫連接 510
18.2 配置事務類型 511
18.3 把SessionFactory與JNDI綁定 512
18.4 使用XML格式的配置文件 513
18.5 小結 516
第19章 Hibernate與Struts框架 517
19.1 實現業(yè)務數據 519
19.2 實現業(yè)務邏輯 522
19.3 netstore應用的訂單業(yè)務 534
19.4 小結 538
第20章 Hibernate與EJB組件 541
20.1 創(chuàng)建EJB組件 541
20.1.1 編寫Remote接口 541
20.1.2 編寫Home接口 543
20.1.3 編寫Enterprise Java Bean類 543
20.2 在業(yè)務代理類中訪問EJB組件 546
20.3 發(fā)布J2EE應用 551
20.3.1 在JBoss-Tomcat上部署EJB組件 551
20.3.2 在JBoss-Tomcat上部署Web應用 553
20.3.3 在JBoss-Tomcat上部署J2EE應用 554
20.4 小結 556
附錄A 標準SQL語言的用法 557
A.1 數據完整性 558
A.1.1 實體完整性 558
A.1.2 域完整性 558
A.1.3 參照完整性 558
A.2 DDL數據定義語言 559
A.3 DML數據操縱語言 561
A.4 DQL數據查詢語言 561
A.4.1 簡單查詢 562
A.4.2 連接查詢 563
A.4.3 子查詢 565
A.4.4 聯合查詢 566
A.4.5 報表查詢 566
附錄B Java語言的反射機制 569
B.1 Java ReflectionAPI簡介 569
B.2 運用反射機制來持久化Java對象 572
附錄C 用XDoclet工具生成映射文件 581
C.1 創(chuàng)建帶有@hibernate標記的Java源文件 581
C.2 建立項目的目錄結構 586
C.3 運行XDoclet工具 589
附錄D 發(fā)布和運行netstore應用 591
D.1 運行netstore所需的軟件 591
D.2 netstore應用的目錄結構 592
D.3 安裝SAMPLEDB數據庫 593
D.4 發(fā)布netstore應用 594
D.4.1 在工作模式1下發(fā)布netstore應用 594
D.4.2 在工作模式2下發(fā)布netstore應用 594
D.5 運行netstore應用 595
參考文獻 599

本目錄推薦

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