Hibernate ORM最佳實踐

Hibernate ORM最佳實踐

《Hibernate ORM最佳實踐》是2007年出版的圖書,作者是陶勇,本書以Hibernate 3為基礎,由淺入深介紹Hibernate OR映射的基本理論知識及最佳實踐經驗。

基本介紹

  • 書名:Hibernate ORM最佳實踐
  • 作者:陶勇
  • ISBN:9787302157571
  • 定價:59元
  • 裝幀:平裝
圖書簡介,目錄,

圖書簡介

本書站在客觀評價Hibernate這門持久化技術的角度,來分析Hibernate的基本構成、知識點及實現原理,匯總業界及作者在Hibernate套用方面的實踐經驗,分清Hibernate的優勢和劣勢,及可代替的解決方案,展示Hibernate對象關係映射技術的真諦,總結Hibernate在項目開發中的最佳實踐經驗,使得讀者在入門領悟Hibernate理論知識的同時,能了解Hibernate的優勢和劣勢,做到揚長避短,而不是盲目膜拜。
本書內容主要分三部分,第一部分是對象關係映射技術的基本理論及Hibernate 對象映射技術的基本知識點,第二部分講解Hibernate技術的查詢和事務、快取等高級性能,第三部分是Hibernate業界套用的最佳實踐經驗,包括如何使用Spring集成Hibernate,使用DAO模式透明化持久層設計,Hibernate在Web套用中的最佳實踐和Hibernate性能最佳化和如何使用iBATIS、JdbcTemplate來替代Hibernate。
本書特別適合使用Hibernate進行企業開發的開發人員作為參考書籍,可以將書中的Hibernate最佳實踐經驗套用於項目中,也適合Hibernate的入門讀者作為入門書籍。

目錄

第1章 對象-關係映射概述1
1.1 分層體系結構1
1.1.1 層次結構2
1.1.2 分層架構特點4
1.1.3 Java數據持久層設計6
1.2 軟體設計模型10
1.2.1 概念模型10
1.2.2 數據模型11
1.2.3 域模型13
1.3 對象-關係映射技術背景22
1.3.1 關係資料庫操作24
1.3.2 數據持久化25
1.3.3 直接使用JDBC的弊端28
1.3.4 對象-關係映射基本概念28
1.4 對象-關係映射工具30
1.4.1 Hibernate31
1.4.2 JDO32
1.4.3 iBATIS32
1.5 小結33
第2章 快速上手34
2.1 準備工作34
2.2 Hibernate起步35
2.2.1 開發環境準備35
2.2.2 創建持久化類37
2.2.3 創建對象-關係映射檔案38
2.2.4 創建Hibernate配置檔案39
2.2.5 用Hibernate持久化數據41
2.2.6 載入並存儲對象43
2.3 Hibernate體系結構46
2.3.1 結構及構成46
2.3.2 Hibernate基本API48
2.3.3 Configuration48
2.3.4 SessionFactory48
2.3.5 Session48
2.3.6 SessionFactory的配置48
2.4 Hibernate Tools53
2.4.1 Hibernate基本開發環境53
2.4.2 在Ant環境中使用
Hibernate Tools54
2.4.3 在Eclipse中使
Hibernate Tools58
2.5 小結64
第3章 對象/關係資料庫映射65
3.1 映射定義65
3.1.1 映射檔案概要65
3.1.2 映射檔案結構66
3.2 映射檔案生成69
3.2.1 使用XDoclet生成
映射檔案69
3.2.2 安裝Doclipse外掛程式70
3.2.3 編寫Java類對象71
3.2.4 編寫類對象的XDoclet
Hibernate標籤74
3.2.5 執行Ant Task生成
配置檔案80
3.3 對象標識符82
3.3.1 內置對象標識符83
3.3.2 increment策略84
3.3.3 高/低位算法生成策略86
3.3.4 標識欄位和序列89
3.3.5 自定義對象標識符91
3.4 映射類型95
3.4.1 基本映射類型95
3.4.2 自定義映射類型98
3.5 小結101
第4章 關聯關係與組件102
4.1 關聯關係102
4.2 一對一關聯104
4.2.1 使用主鍵關聯104
4.2.2 使用外鍵關聯109
4.3 一對多關聯112
4.3.1 單向關聯112
4.3.2 最佳實踐——提高
刪除性能118
4.3.3 雙向關聯119
4.4 多對多關聯122
4.5 檢索策略127
4.5.1 檢索策略128
4.5.2 多對一129
4.5.3 一對一132
4.5.4 一對多/多對多134
4.6 組件映射137
4.7 傳播性持久化141
4.8 小結142
第5章 集合類映射143
5.1 集合143
5.1.1 Java中的集合143
5.1.2 Hibernate中的集合144
5.2 映射Map145
5.2.1 Java中的Map146
5.2.2 映射Map150
5.3 映射Set157
5.3.1 Java中的Set157
5.3.2 映射Set159
5.4 映射List162
5.4.1 Java中的List163
5.4.2 映射List164
5.5 映射Bag172
5.5.1 映射Bag172
5.5.2 映射idbag176
5.6 集合排序179
5.6.1 資料庫排序179
5.6.2 記憶體排序181
5.7 小結183
第6章 繼承映射184
6.1 繼承映射184
6.2 繼承映射的幾種策略188
6.2.1 每個類繼承結構一張表188
6.2.2 每個子類一張表195
6.2.3 每個子類一張表,使用
辨別標誌200
6.2.4 混合使用“每個類繼承
結構一張表”和“每個
子類一張表”203
6.2.5 每個具體類一張表207
6.2.6 每個具體類一張表,使用
隱式多態211
6.3 小結218
第7章 操作持久化對象219
7.1 持久對象的生命周期219
7.1.1 瞬時對象220
7.1.2 持久對象221
7.1.3 脫管對象224
7.1.4 區分持久對象225
7.1.5 equals()和hashCode()228
7.2 理解Session清理232
7.2.1 Session快取232
7.2.2 Session清理235
7.2.3 深入Session清理機制237
7.3 Session操作對象的方法239
7.3.1 save()240
7.3.2 get()242
7.3.3 update()243
7.3.4 delete()245
7.3.5 saveOrUpdate()246
7.4 傳播性持久化247
7.5 小結251
第8章 Hibernate查詢252
8.1 Hibernate的查詢方式252
8.1.1 通過對象標識符查詢252
8.1.2 面向對象查詢——HQL253
8.1.3 按條件查詢方式
——QBC254
8.1.4 按樣例查詢方式
——QBE255
8.1.5 傳統的查詢方式
——Native SQL256
8.1.6 選擇合適的抓取策略256
8.2 查詢實現258
8.2.1 Session的createQuery()
方法258
8.2.2 疊代獲取結果258
8.2.3 多對象查詢260
8.2.4 統計查詢260
8.2.5 綁定參數式查詢261
8.3 過濾器262
8.3.1 Hibernate過濾器262
8.3.2 集合過濾器264
8.4 Hibernate分頁支持265
8.4.1 Hibernate分頁實現265
8.4.2 Hibernate分頁原理266
8.5 使用條件查詢269
8.5.1 創建Criteria實例269
8.5.2 Criteria結構273
8.5.3 Criterion274
8.5.4 Projection276
8.6 使用Native SQL查詢277
8.6.1 創建一個基於SQL
的Query277
8.6.2 命名SQL查詢278
8.6.3 指定欄位/別名279
8.6.4 使用存儲過程來查詢280
8.6.5 Native SQL查詢
常用方法281
8.7 查詢最佳化282
8.7.1 開啟Hibernate SQL
日誌功能282
8.7.2 單步跟蹤套用執行情況283
8.8 小結283
第9章 HQL查詢語言285
9.1 HQL語言特點285
9.1.1 HQL概要286
9.1.2 面向對象290
9.1.3 大小寫敏感性290
9.1.4 跨資料庫性292
9.1.5 相關Hibernate設定293
9.1.6 關於本章例程295
9.2 HQL查詢構成296
9.2.1 FROM——指定
查詢對象296
9.2.2 理解多態查詢298
9.2.3 SELECT——指定
查詢結果300
9.2.4 JOIN——使用連線304
9.2.5 WHERE——指定
查詢條件309
9.2.6 表達式310
9.2.7 查詢分組與查詢排序313
9.2.8 子查詢314
9.2.9 批量更新與刪除314
9.3 小結315
第10章 事務與並發317
10.1 事務概念317
10.2 聲明事務邊界318
10.2.1 在資料庫中聲明
事務邊界318
10.2.2 在JDBC中聲明
事務邊界320
10.2.3 在JTA中聲明
事務邊界321
10.2.4 在Hibernate中聲明
事務邊界323
10.3 事務與Session的關係327
10.4 事務隔離級別329
10.5 Hibernate並發控制330
10.5.1 悲觀鎖定331
10.5.2 樂觀鎖定332
10.5.3 session的lock方法與
update方法的區別340
10.6 最佳實踐——怎樣劃分事務341
10.7 小結344
第11章 理解Hibernate快取346
11.1 快取原理346
11.2 Hibernate快取349
11.2.1 Hibernate一級快取350
11.2.2 Hibernate二級快取352
11.2.3 第三方快取實現354
11.2.4 快取並發策略358
11.2.5 最佳實踐——二級快取
的套用360
11.2.6 Hibernate查詢快取363
11.2.7 最佳實踐——查詢快取
的套用366
11.3 不要放任快取增長366
11.3.1 精確控制快取失效
策略367
11.3.2 大數據量處理及時
清除快取368
11.4 使用OSCache進行快取370
11.4.1 OSCache介紹370
11.4.2 使用OSCache370
11.4.3 OSCache集群
快取支持374
11.5 小結377
第12章 通過Spring訪問
Hibernate378
12.1 簡化Hibernate使用難度378
12.1.1 會話管理的困難379
12.1.2 業界流行做法382
12.1.3 集中管理Session386
12.1.4 最佳實踐391
12.2 Spring的Hibernate支持392
12.2.1 Hibernate SessionFactory
注入393
12.2.2 藉助模板訪問
Hibernate397
12.2.3 回調Callback機制402
12.2.4 HibernateDaoSupport
支持405
12.2.5 異常處理406
12.3 Spring事務支持408
12.3.1 事務聲明408
12.3.2 編程式事務管理411
12.3.3 聲明式事務管理416
12.3.4 事務管理策略423
12.3.5 最佳實踐426
12.4 小結428
第13章 DAO透明持久化429
13.1 DAO模式核心思想429
13.1.1 DAO模式中的對象430
13.1.2 數據訪問對象431
13.1.3 業務對象432
13.1.4 傳輸對象433
13.2 基於DAO模式的Hibernate
設計433
13.2.1 DAO模式設計434
13.2.2 DAO接口設計439
13.2.3 採用范型的DAO
接口設計440
13.3 DAO設計策略444
13.3.1 事務的界定445
13.3.2 DAO和透明持久化446
13.3.3 數據訪問操作的粒度450
13.3.4 透明持久化和
對象狀態451
13.3.5 DAO中域對象
狀態維護452
13.4 DAO模式注意事項453
13.5 不要讓套用局限於Hibernate453
13.5.1 使用Hibernate的
局限性455
13.6 小結456
第14章 Web套用中的
Hibernate457
14.1 Web套用分層中的Hibernate457
14.1.1 MVC模式457
14.1.2 Web套用分層460
14.2 Struts與Hibernate的最佳結合462
14.2.1 Struts中的ActionForm463
14.2.2 集成ActionForm
與POJO467
14.2.3 使用Spring建立橋樑472
14.3 讓分頁不再是煩惱476
14.3.1 頁面分頁幾種方案477
14.3.2 使用Hibernate的
分頁實現477
14.3.3 適配不同持久方法的
分頁封裝479
14.4 異常處理483
14.4.1 異常捕捉機制483
14.4.2 在何處處理異常484
14.5 使用攔截器與事件486
14.5.1 Hibernate中的攔截器486
14.5.2 Hibernate中的事件488
14.6 Struts與Spring、Hibernate
結合套用示例489
14.7 小結493
第15章 Hibernate性能494
15.1 不要使Hibernate性能
變成瓶頸494
15.1.1 Hibernate的性能擔憂494
15.1.2 Hibernate的性能
最佳化機制495
15.1.3 提高Hibernate
啟動速度503
15.2 不要掉入批量處理陷阱505
15.2.1 Hibernate批量
操作實現505
15.2.2 批量插入改進方案506
15.2.3 批量更新改進方案507
15.2.4 考慮使用無狀態Session
批量操作509
15.2.5 儘可能使用DML風格
的批量操作509
15.3 Web套用中的Hibernate最佳化514
15.4 考慮替代方案519
15.4.1 使用iBATIS實現520
15.4.2 iBATIS持久策略520
15.4.3 Spring中集成iBATIS524
15.4.4 使用Spring中的
JdbcTemplate替代525
15.5 小結527

相關詞條

熱門詞條

聯絡我們