注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JAVA及其相關(guān)精通Hibernate:Java對象持久化技術(shù)詳解

精通Hibernate:Java對象持久化技術(shù)詳解

精通Hibernate:Java對象持久化技術(shù)詳解

定 價:¥59.00

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

ISBN: 9787121011368 出版時間: 2005-05-01 包裝: 平裝
開本: 26cm+光盤1片 頁數(shù): 600 字?jǐn)?shù):  

內(nèi)容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

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