本書(shū)在及時(shí)版基礎(chǔ)上,理論內(nèi)容更新,更加注重理論與實(shí)踐的結(jié)合,有大量具有典型性和實(shí)用價(jià)值的Hibernate應(yīng)用實(shí)例。全書(shū)將詳細(xì)介紹運(yùn)用目前最成熟的Hibernate 3.3版本進(jìn)行Java對(duì)象持久化的技術(shù),既能掌握用Hibernate工具對(duì)這兩種模型進(jìn)行映射的技術(shù),又能獲得設(shè)計(jì)與開(kāi)發(fā)Java對(duì)象模型和關(guān)系數(shù)據(jù)模型的經(jīng)驗(yàn)。光盤(pán)包括本書(shū)范例源程序、涉及軟件的版本的安裝程序,以及配套的語(yǔ)音講座。
本書(shū)無(wú)論對(duì)于Java開(kāi)發(fā)的新手還是行家來(lái)說(shuō),都是精通Java對(duì)象持久化技術(shù)的必備實(shí)用手冊(cè)。
凝聚Java魅力,成就開(kāi)發(fā)專(zhuān)家
看清Java萬(wàn)花筒的本質(zhì),從復(fù)雜的表象中尋找普遍的規(guī)律,深刻理解Java的核心思想
本書(shū)在第1版的基礎(chǔ)上,并結(jié)合作者多年經(jīng)驗(yàn),將更新的理論知識(shí),精心細(xì)致地介紹應(yīng)用。
孫衛(wèi)琴:知名IT作家的,Java系列暢銷(xiāo)書(shū)的作者。1997年畢業(yè)于上海交通大學(xué),隨后從事基于Java的軟件開(kāi)發(fā)工作,還從事Java方面的培訓(xùn)和咨詢(xún)工作,2002年開(kāi)始Java技術(shù)領(lǐng)域的創(chuàng)作,其作者深受讀者歡迎。 代表作有: 《精通Hibernate:Java對(duì)象持久化技術(shù)詳解(第2
第1章 Java應(yīng)用分層架構(gòu)及軟件模型
1.1 應(yīng)用程序的分層體系結(jié)構(gòu)
1.1.1 區(qū)分物理層和邏輯層
1.1.2 軟件層的特征
1.1.3 軟件分層的優(yōu)點(diǎn)
1.1.4 軟件分層的缺點(diǎn)
1.1.5 Java應(yīng)用的持久化層
1.2 軟件的模型
1.2.1 概念模型
1.2.2 關(guān)系數(shù)據(jù)模型
1.2.3 域模型
1.2.4 域?qū)ο?/p>
1.2.5 域?qū)ο笾g的關(guān)系
1.2.6 域?qū)ο蟮某志没拍?/p>
1.3 小結(jié)
1.4 思考題
第2章 Java對(duì)象持久化技術(shù)概述
2.1 直接通過(guò)JDBC API來(lái)持久化實(shí)體域?qū)ο?/p>
2.2 ORM簡(jiǎn)介
2.2.1 對(duì)象-關(guān)系映射的概念
2.2.2 ORM中間件的基本使用方法
2.2.3 常用的ORM中間件
2.3 實(shí)體域?qū)ο蟮钠渌志没J?/p>
2.3.1 主動(dòng)域?qū)ο竽J?/p>
2.3.2 JDO模式
2.3.3 CMP模式
2.4 Hibernate API簡(jiǎn)介
2.4.1 Hibernate的核心接口
2.4.2 事件處理接口
2.4.3 Hibernate映射類(lèi)型接口
2.4.4 可供擴(kuò)展的接口
2.5 小結(jié)
2.6 思考題
第3章 及時(shí)個(gè)Hibernate應(yīng)用
3.1 創(chuàng)建Hibernate的配置文件
3.2 創(chuàng)建持久化類(lèi)
3.3 創(chuàng)建數(shù)據(jù)庫(kù)Schema
3.4 創(chuàng)建對(duì)象-關(guān)系映射文件
3.4.1 映射文件的文檔類(lèi)型定義(DTD)
3.4.2 把Customer持久化類(lèi)映射到CUSTOMERS表
3.5 通過(guò)Hibernate API操縱數(shù)據(jù)庫(kù)
3.5.1 Hibernate的初始化
3.5.2 訪問(wèn)Hibernate的Session接口
3.6 運(yùn)行helloapp應(yīng)用
3.6.1 創(chuàng)建運(yùn)行本書(shū)范例的系統(tǒng)環(huán)境
3.6.2 創(chuàng)建helloapp應(yīng)用的目錄結(jié)構(gòu)
3.6.3 把helloapp應(yīng)用作為獨(dú)立應(yīng)用程序運(yùn)行
3.6.4 把helloapp應(yīng)用作為Java Web應(yīng)用運(yùn)行
3.7 小結(jié)
3.8 思考題
第4章 hbm2java和hbm2ddl工具
4.1 創(chuàng)建對(duì)象-關(guān)系映射文件
4.1.1 定制持久化類(lèi)
4.1.2 定制數(shù)據(jù)庫(kù)表
4.2 建立項(xiàng)目的目錄結(jié)構(gòu)
4.3 運(yùn)行hbm2java工具
4.4 運(yùn)行hbm2ddl工具
4.5 使用XML格式的配置文件
4.6 小結(jié)
4.7 思考題
第5章 對(duì)象-關(guān)系映射基礎(chǔ)
5.1 持久化類(lèi)的屬性及訪問(wèn)方法
5.1.1 基本類(lèi)型屬性和包裝類(lèi)型屬性
5.1.2 Hibernate訪問(wèn)持久化類(lèi)屬性的策略
5.1.3 在持久化類(lèi)的訪問(wèn)方法中加入程序邏輯
5.1.4 設(shè)置派生屬性
5.1.5 控制insert和update語(yǔ)句
5.2 處理SQL引用標(biāo)識(shí)符
5.3 創(chuàng)建命名策略
5.4 設(shè)置數(shù)據(jù)庫(kù)Schema
5.5 設(shè)置類(lèi)的包名
5.6 運(yùn)行本章的范例程序
5.7 小結(jié)
5.8 思考題
第6章 映射對(duì)象標(biāo)識(shí)符
6.1 關(guān)系數(shù)據(jù)庫(kù)按主鍵區(qū)分不同的記錄
6.1.1 把主鍵定義為自動(dòng)增長(zhǎng)標(biāo)識(shí)符類(lèi)型
6.1.2 從序列(Sequence)中獲取自動(dòng)增長(zhǎng)的標(biāo)識(shí)符
6.2 Java語(yǔ)言按內(nèi)存地址區(qū)分不同的對(duì)象
6.3 Hibernate用對(duì)象標(biāo)識(shí)符(OID)來(lái)區(qū)分對(duì)象
6.4 Hibernate的內(nèi)置標(biāo)識(shí)符生成器的用法
6.4.1 increment標(biāo)識(shí)符生成器
6.4.2 identity標(biāo)識(shí)符生成器
6.4.3 sequence標(biāo)識(shí)符生成器
6.4.4 hilo標(biāo)識(shí)符生成器
6.4.5 native標(biāo)識(shí)符生成器
6.5 映射自然主鍵
6.5.1 映射單個(gè)自然主鍵
6.5.2 映射復(fù)合自然主鍵
6.6 小結(jié)
6.7 思考題
第7章 映射一對(duì)多關(guān)聯(lián)關(guān)系
7.1 建立多對(duì)一的單向關(guān)聯(lián)關(guān)系
7.1.1 元素的not-null屬性
7.1.2 級(jí)聯(lián)保存和更新
7.2 映射一對(duì)多雙向關(guān)聯(lián)關(guān)系
7.2.1 元素的inverse屬性
7.2.2 級(jí)聯(lián)刪除
7.2.3 父子關(guān)系
7.3 映射一對(duì)多雙向自身關(guān)聯(lián)關(guān)系
7.4 改進(jìn)持久化類(lèi)
7.5 小結(jié)
7.6 思考題
第8章 通過(guò)Hibernate操縱對(duì)象(上)
8.1 Java對(duì)象在JVM中的生命周期
8.2 理解Session的緩存
8.2.1 Session的緩存的作用
8.2.2 臟檢查及清理緩存的機(jī)制
8.3 Java對(duì)象在Hibernate持久化層的狀態(tài)
8.3.1 臨時(shí)對(duì)象的特征
8.3.2 持久化對(duì)象的特征
8.3.3 被刪除對(duì)象的特征
8.3.4 游離對(duì)象的特征
8.4 Session接口的詳細(xì)用法
8.4.1 Session的save()和persist()方法
8.4.2 Session的load()和get()方法
8.4.3 Session的update()方法
8.4.4 Session的saveOrUpdate()方法
8.4.5 Session的merge()方法
8.4.6 Session的delete()方法
8.4.7 Session的replicate()方法
8.5 級(jí)聯(lián)操縱對(duì)象圖
8.5.1 級(jí)聯(lián)保存臨時(shí)對(duì)象
8.5.2 更新持久化對(duì)象
8.5.3 持久化臨時(shí)對(duì)象
8.5.4 更新游離對(duì)象
8.5.5 遍歷對(duì)象圖
8.6 小結(jié)
8.7 思考題
第9章 通過(guò)Hibernate操縱對(duì)象(下)
9.1 與觸發(fā)器協(xié)同工作
9.2 利用攔截器(Interceptor)生成審計(jì)日志
9.3 Hibernate的事件處理機(jī)制
9.4 批量處理數(shù)據(jù)
9.4.1 通過(guò)Session來(lái)進(jìn)行批量操作
9.4.2 通過(guò)StatelessSession來(lái)進(jìn)行批量操作
9.4.3 通過(guò)HQL來(lái)進(jìn)行批量操作
9.4.4 直接通過(guò)JDBC API來(lái)進(jìn)行批量操作
9.5 使用元數(shù)據(jù)
9.6 通過(guò)Hibernate調(diào)用存儲(chǔ)過(guò)程
9.7 小結(jié)
9.8 思考題
第10章 映射組成關(guān)系
10.1 建立精粒度對(duì)象模型
10.2 建立粗粒度關(guān)系數(shù)據(jù)模型
10.3 映射組成關(guān)系
10.3.1 區(qū)分值(Value)類(lèi)型和實(shí)體(Entity)類(lèi)型
10.3.2 在應(yīng)用程序中訪問(wèn)具有組成關(guān)系的持久化類(lèi)
10.4 映射復(fù)合組成關(guān)系
10.5 小結(jié)
10.6 思考題
第11章 Hibernate的映射類(lèi)型
11.1 Hibernate的內(nèi)置映射類(lèi)型
11.1.1 Java基本類(lèi)型的Hibernate映射類(lèi)型
11.1.2 Java時(shí)間和日期類(lèi)型的Hibernate映射類(lèi)型
11.1.3 Java大對(duì)象類(lèi)型的Hibernate映射類(lèi)型
11.1.4 JDK自帶的個(gè)別Java類(lèi)的Hibernate映射類(lèi)型
11.1.5 使用Hibernate內(nèi)置映射類(lèi)型
11.2 客戶(hù)化映射類(lèi)型
11.2.1 用客戶(hù)化映射類(lèi)型取代Hibernate組件
11.2.2 用UserType映射枚舉類(lèi)型
11.2.3 實(shí)現(xiàn)CompositeUserType接口
11.2.4 運(yùn)行本節(jié)范例程序
11.3 操縱Blob和Clob類(lèi)型數(shù)據(jù)
11.4 小結(jié)
11.5 思考題
第12章 映射繼承關(guān)系
12.1 繼承關(guān)系樹(shù)的每個(gè)具體類(lèi)對(duì)應(yīng)一個(gè)表
12.1.1 創(chuàng)建映射文件
12.1.2 操縱持久化對(duì)象
12.2 繼承關(guān)系樹(shù)的根類(lèi)對(duì)應(yīng)一個(gè)表
12.2.1 創(chuàng)建映射文件
12.2.2 操縱持久化對(duì)象
12.3 繼承關(guān)系樹(shù)的每個(gè)類(lèi)對(duì)應(yīng)一個(gè)表
12.3.1 創(chuàng)建映射文件
12.3.2 操縱持久化對(duì)象
12.4 選擇繼承關(guān)系的映射方式
12.5 映射多對(duì)一多態(tài)關(guān)聯(lián)
12.6 小結(jié)
12.7 思考題
第13章 Java集合類(lèi)
13.1 Set(集)
13.1.1 Set的一般用法
13.1.2 HashSet類(lèi)
13.1.3 TreeSet類(lèi)
13.1.4 向Set中加入持久化類(lèi)的對(duì)象
13.2 List(列表)
13.3 Map(映射)
13.4 小結(jié)
13.5 思考題
第14章 映射值類(lèi)型集合
14.1 映射Set(集)
14.2 映射Bag(包)
14.3 映射List(列表)
14.4 映射Map
14.5 對(duì)集合排序
14.5.1 在數(shù)據(jù)庫(kù)中對(duì)集合排序
14.5.2 在內(nèi)存中對(duì)集合排序
14.6 映射組件類(lèi)型集合
14.7 小結(jié)
14.8 思考題
第15章 映射實(shí)體關(guān)聯(lián)關(guān)系
15.1 映射一對(duì)一關(guān)聯(lián)
15.1.1 按照外鍵映射
15.1.2 按照主鍵映射
15.2 映射單向多對(duì)多關(guān)聯(lián)
15.3 映射雙向多對(duì)多關(guān)聯(lián)關(guān)系
15.3.1 關(guān)聯(lián)兩端使用元素
15.3.2 在inverse端使用元素
15.3.3 使用組件類(lèi)集合
15.3.4 把多對(duì)多關(guān)聯(lián)分解為兩個(gè)一對(duì)多關(guān)聯(lián)
15.4 小結(jié)
15.5 思考題
第16章 Hibernate的檢索策略
16.1 Hibernate的檢索策略簡(jiǎn)介
16.2 類(lèi)級(jí)別的檢索策略
16.2.1 立即檢索
16.2.2 延遲檢索
16.3 一對(duì)多和多對(duì)多關(guān)聯(lián)的檢索策略
16.3.1 立即檢索(lazy屬性為“false”)
16.3.2 延遲檢索(lazy屬性為默認(rèn)值“true”)
16.3.3 增強(qiáng)延遲檢索(lazy屬性為“extra”)
16.3.4 批量延遲檢索和批量立即檢索(使用batch-size屬性)
16.3.5 用帶子查詢(xún)的select語(yǔ)句整批量初始化orders集合(fetch屬性為“subselect”)
16.3.6 迫切左外連接檢索(fetch屬性為“join”)
16.4 多對(duì)一和一對(duì)一關(guān)聯(lián)的檢索策略
16.4.1 迫切左外連接檢索(fetch屬性為“join”)
16.4.2 延遲檢索(lazy屬性為默認(rèn)值“proxy”)
16.4.3 無(wú)延遲檢索(lazy屬性為“no-proxy”)
16.4.4 立即檢索(lazy屬性為“false”)
16.4.5 批量延遲檢索和批量立即檢索(使用batch-size屬性)
16.5 控制迫切左外連接檢索的深度
16.6 在應(yīng)用程序中顯式指定迫切左外連接檢索策略
16.7 屬性級(jí)別的檢索策略
16.8 小結(jié)
16.9 思考題
第17章 Hibernate的檢索方式(上)
17.1 Hibernate的檢索方式簡(jiǎn)介
17.1.1 HQL檢索方式
17.1.2 QBC檢索方式
17.1.3 本地SQL檢索方式
17.1.4 關(guān)于本章范例程序
17.1.5 使用別名
17.1.6 多態(tài)查詢(xún)
17.1.7 對(duì)查詢(xún)結(jié)果排序
17.1.8 分頁(yè)查詢(xún)
17.1.9 檢索單個(gè)對(duì)象(uniqueResult()方法)
17.1.10 按主鍵逐個(gè)處理查詢(xún)結(jié)果(iterate()方法)
17.1.11 可滾動(dòng)的結(jié)果集
17.1.12 在HQL查詢(xún)語(yǔ)句中綁定參數(shù)
17.1.13 設(shè)置查詢(xún)附屬事項(xiàng)
17.1.14 在映射文件中定義命名查詢(xún)語(yǔ)句
17.1.15 在HQL查詢(xún)語(yǔ)句中調(diào)用函數(shù)
17.2 設(shè)定查詢(xún)條件
17.2.1 比較運(yùn)算
17.2.2 范圍運(yùn)算
17.2.3 字符串模式匹配
17.2.4 邏輯運(yùn)算
17.2.5 集合運(yùn)算
17.3 小結(jié)
17.4 思考題
第18章 Hibernate的檢索方式(下)
18.1 連接查詢(xún)
18.1.1 默認(rèn)情況下關(guān)聯(lián)級(jí)別的運(yùn)行時(shí)檢索策略
18.1.2 迫切左外連接
18.1.3 左外連接
18.1.4 內(nèi)連接
18.1.5 迫切內(nèi)連接
18.1.6 隱式內(nèi)連接
18.1.7 右外連接
18.1.8 使用SQL風(fēng)格的交叉連接和隱式內(nèi)連接
18.1.9 關(guān)聯(lián)級(jí)別運(yùn)行時(shí)的檢索策略
18.2 投影查詢(xún)
18.3 報(bào)表查詢(xún)
18.3.1 使用聚集函數(shù)
18.3.2 分組查詢(xún)
18.3.3 優(yōu)化報(bào)表查詢(xún)的性能
18.4 高級(jí)查詢(xún)技巧
18.4.1 動(dòng)態(tài)查詢(xún)
18.4.2 集合過(guò)濾
18.4.3 子查詢(xún)
18.4.4 本地SQL查詢(xún)
18.4.5 查詢(xún)結(jié)果轉(zhuǎn)換器
18.5 查詢(xún)性能優(yōu)化
18.5.1 iterate()方法
18.5.2 查詢(xún)緩存
18.6 小結(jié)
18.7 思考題
第19章 Hibernate高級(jí)配置
19.1 配置數(shù)據(jù)庫(kù)連接池
19.1.1 使用默認(rèn)的數(shù)據(jù)庫(kù)連接池
19.1.2 使用配置文件指定的數(shù)據(jù)庫(kù)連接池
19.1.3 從容器中獲得數(shù)據(jù)源
19.1.4 由Java應(yīng)用本身提供數(shù)據(jù)庫(kù)連接
19.2 配置事務(wù)類(lèi)型
19.3 把SessionFactory與JNDI綁定
19.4 配置日志
19.5 使用XML格式的配置文件
19.6 小結(jié)
19.7 思考題
第20章 聲明數(shù)據(jù)庫(kù)事務(wù)
20.1 數(shù)據(jù)庫(kù)事務(wù)的概念
20.2 聲明事務(wù)邊界的方式
20.3 在mysql.exe程序中聲明事務(wù)
20.4 Java應(yīng)用通過(guò)JDBC API聲明JDBC事務(wù)
20.5 Java應(yīng)用通過(guò)Hibernate API聲明JDBC事務(wù)
20.5.1 處理異常
20.5.2 Session與事務(wù)的關(guān)系
20.5.3 設(shè)定事務(wù)超時(shí)
20.6 Java應(yīng)用通過(guò)Hibernate API聲明JTA事務(wù)
20.7 Java應(yīng)用通過(guò)JTA API聲明JTA事務(wù)
20.8 小結(jié)
20.9 思考題
第21章 處理并發(fā)問(wèn)題
21.1 多個(gè)事務(wù)并發(fā)運(yùn)行時(shí)的并發(fā)問(wèn)題
21.1.1 及時(shí)類(lèi)丟失更新
21.1.2 臟讀
21.1.3 虛讀
21.1.4 不可重復(fù)讀
21.1.5 第二類(lèi)丟失更新
21.2 數(shù)據(jù)庫(kù)系統(tǒng)的鎖的基本原理
21.2.1 鎖的多粒度性及自動(dòng)鎖升級(jí)
21.2.2 鎖的類(lèi)型和兼容性
21.2.3 死鎖及其防止辦法
21.3 數(shù)據(jù)庫(kù)的事務(wù)隔離級(jí)別
21.3.1 在mysql.exe程序中設(shè)置隔離級(jí)別
21.3.2 在應(yīng)用程序中設(shè)置隔離級(jí)別
21.4 在應(yīng)用程序中采用悲觀鎖
21.4.1 利用數(shù)據(jù)庫(kù)系統(tǒng)的獨(dú)占鎖來(lái)實(shí)現(xiàn)悲觀鎖
21.4.2 由應(yīng)用程序?qū)崿F(xiàn)悲觀鎖
21.5 利用Hibernate的版本控制來(lái)實(shí)現(xiàn)樂(lè)觀鎖
21.5.1 使用元素
21.5.2 使用元素
21.5.3 對(duì)游離對(duì)象進(jìn)行版本檢查
21.5.4 強(qiáng)制更新版本
21.6 實(shí)現(xiàn)樂(lè)觀鎖的其他方法
21.7 小結(jié)
21.8 思考題
第22章 管理Hibernate的緩存
22.1 緩存的基本原理
22.1.1 持久化層的緩存的范圍
22.1.2 持久化層的緩存的并發(fā)訪問(wèn)策略
22.2 Hibernate的二級(jí)緩存結(jié)構(gòu)
22.3 管理Hibernate的及時(shí)級(jí)緩存
22.4 管理Hibernate的第二級(jí)緩存
22.4.1 配置進(jìn)程范圍內(nèi)的第二級(jí)緩存
22.4.2 配置集群范圍內(nèi)的第二級(jí)緩存
22.4.3 在應(yīng)用程序中管理第二級(jí)緩存
22.4.4 Session與第二級(jí)緩存的交互模式
22.5 運(yùn)行本章的范例程序
22.6 小結(jié)
22.7 思考題
第23章 管理Session和實(shí)現(xiàn)對(duì)話(huà)
23.1 管理Session對(duì)象的生命周期
23.1.1 Session對(duì)象的生命周期與本地線程綁定
23.1.2 Session對(duì)象的生命周期與JTA事務(wù)綁定
23.2 實(shí)現(xiàn)對(duì)話(huà)
23.2.1 使用游離對(duì)象
23.2.2 使用手工清理緩存模式下的Session
23.3 小結(jié)
23.4 思考題
第24章 Hibernate與Struts框架
24.1 實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)
24.2 實(shí)現(xiàn)業(yè)務(wù)邏輯
24.3 netstore應(yīng)用的訂單業(yè)務(wù)
24.4 小結(jié)
第25章 Hibernate與EJB組件
25.1 創(chuàng)建EJB組件
25.1.1 編寫(xiě)Remote接口
25.1.2 編寫(xiě)Home接口
25.1.3 編寫(xiě)Enterprise Java Bean類(lèi)
25.2 在業(yè)務(wù)類(lèi)中訪問(wèn)EJB組件
25.3 J2EE應(yīng)用
25.3.1 在JBoss上部署EJB組件
25.3.2 在JBoss上部署Web應(yīng)用
25.3.3 在JBoss上部署J2EE應(yīng)用
25.4 小結(jié)
附錄A 標(biāo)準(zhǔn)SQL語(yǔ)言的用法
A.1 數(shù)據(jù)完整性
第9章 通過(guò)Hibernate操縱對(duì)象(下)
9.1與觸發(fā)器協(xié)同工作
數(shù)據(jù)庫(kù)系統(tǒng)有時(shí)會(huì)利用觸發(fā)器來(lái)完成某些業(yè)務(wù)規(guī)則。觸發(fā)器在接收到特定的事件時(shí)被激發(fā),執(zhí)行事先定義好的一組數(shù)據(jù)庫(kù)操作。能激發(fā)觸發(fā)器運(yùn)行的事件可分為以下幾種:
插入記錄事件,即執(zhí)行insert語(yǔ)句。
更新記錄事件,即執(zhí)行update語(yǔ)句。
刪除記錄事件,即執(zhí)行delete語(yǔ)句。
當(dāng)Hibernate與數(shù)據(jù)庫(kù)中的觸發(fā)器協(xié)同工作時(shí),會(huì)造成兩類(lèi)問(wèn)題:觸發(fā)器使Session的緩存中的持久化對(duì)象與數(shù)據(jù)庫(kù)中對(duì)應(yīng)數(shù)據(jù)不一致。
Session的update()方法盲目地激發(fā)觸發(fā)器。
下面分別介紹出現(xiàn)這兩類(lèi)問(wèn)題的原因及解決辦法。
1.觸發(fā)器使Session緩存中的數(shù)據(jù)與數(shù)據(jù)庫(kù)不一致
當(dāng)Session向數(shù)據(jù)庫(kù)中保存、更新或刪除對(duì)象時(shí),如果會(huì)激發(fā)數(shù)據(jù)庫(kù)中的某個(gè)觸發(fā)器,常常會(huì)帶來(lái)~個(gè)問(wèn)題,那就是Session緩存中的持久化對(duì)象無(wú)法與數(shù)據(jù)庫(kù)中的數(shù)據(jù)保持同步。出現(xiàn)這一問(wèn)題的原因在于觸發(fā)器運(yùn)行在數(shù)據(jù)庫(kù)中,它執(zhí)行的操作對(duì)Session是透明的,假如在Session的緩存中已經(jīng)存在一個(gè)Customer對(duì)象,接下來(lái)當(dāng)觸發(fā)器修改數(shù)據(jù)庫(kù)中CUSTOMERS表的相應(yīng)記錄時(shí),Session無(wú)法檢測(cè)到數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化,因此Session不會(huì)自動(dòng)刷新緩存中的Customer對(duì)象。下面舉例說(shuō)明。
……
這本書(shū)還沒(méi)有深入的仔細(xì)閱讀,大概翻閱了一下,目錄很詳細(xì)。
書(shū)還沒(méi)有來(lái)得及詳細(xì)看,大概翻了一下,內(nèi)容不錯(cuò),通俗易懂。
hibernate領(lǐng)域的王者,寫(xiě)的很好。值得購(gòu)買(mǎi),推薦初學(xué)者,深入了解的用。
大體上來(lái)說(shuō)還可以,就是書(shū)中有些概念講的不太正確,閱讀的時(shí)候不要盡信,遇到不確定的可以實(shí)際試驗(yàn)一下,避免誤入歧途。
很詳細(xì),現(xiàn)在hibernate的書(shū)看不到了
里面代碼太多,作者視乎很喜歡用代碼講道理,理論知識(shí)不是很連貫,粗翻看了一下,補(bǔ)了自己hibernate的一些空白知識(shí),但是沒(méi)有注解部分的內(nèi)容比較遺憾。
書(shū)還是蠻好的,就是買(mǎi)了這邊書(shū),說(shuō)是有贈(zèng)品,結(jié)果清單上確沒(méi)有這邊書(shū),太會(huì)忽悠人啦~我本來(lái)還以為是沒(méi)有啦,我今天有在網(wǎng)上點(diǎn)擊買(mǎi)這本書(shū),又提示有贈(zèng)品,忽悠,接著忽悠...........
快遞大哥很贊,所以特定來(lái)評(píng)論下,當(dāng)天沒(méi)帶手機(jī),快遞大哥跑了3趟把書(shū)送到我手里,非常感激
沒(méi)看,以前買(mǎi)過(guò)前一版的看了下覺(jué)得不錯(cuò)送人了,于是又買(mǎi)本
之前只是粗略的了解了一下,沒(méi)有對(duì)hibernate進(jìn)行深究。入手此書(shū)后很喜歡,閑時(shí)看看,大有裨益
內(nèi)容跟孫衛(wèi)琴的前幾個(gè)版本很相似,沒(méi)什么實(shí)質(zhì)性的改進(jìn)。也沒(méi)有對(duì)注解的講解
目前正在用到此技術(shù),此書(shū)可以很好的提升自己的能力
本書(shū)介紹的hibernate版本還比較新,類(lèi)容也很詳細(xì),個(gè)人感覺(jué)還不錯(cuò)!
昨天下午4點(diǎn)多的時(shí)候下單。。哇。。今天一大早就收到了。。這是我網(wǎng)購(gòu)以來(lái)。當(dāng)當(dāng)?shù)呐渌退俣仁亲羁斓摹!5灿胁凰摹!>褪蔷尤粵](méi)有贈(zèng)品。。害我空歡喜一場(chǎng)。。算了。。客服的態(tài)度良好。。加上這也是本好書(shū)。。好好閱讀去了~
喜歡衛(wèi)琴老師的書(shū)本,講解條理清晰,實(shí)用性強(qiáng),由淺入深,書(shū)本紙張質(zhì)地,印刷排版都不錯(cuò),5分
雙11活動(dòng)期間買(mǎi)了,很不錯(cuò)優(yōu)惠了100元錢(qián),真不錯(cuò)。看了這本書(shū),hibernate就不用看其他書(shū)了。
看著別人寫(xiě)好的HQL,自己也能仿照著寫(xiě)出來(lái),但是不懂Hiberlate的原理,遇到復(fù)雜的自己就不會(huì)寫(xiě)了。這本書(shū)把原理都講了,看完后收獲很大。
很厚很詳細(xì),可以留著當(dāng)詞典用。零基礎(chǔ)的建議買(mǎi)本薄的看吧,不要一下扎那么深,不然會(huì)很痛苦。
怎么說(shuō)呢,孫衛(wèi)琴的書(shū),名氣很大,但行文枯燥是一貫的毛病了,學(xué)院派味道太濃;看著看著就容易瞌睡。另外本書(shū)很多內(nèi)容過(guò)于陳舊,像Struts居然還是Struts1的版本?其實(shí)像這種厚度和價(jià)格的書(shū),完全也可以在后篇加入一些實(shí)際操作和高級(jí)特性的內(nèi)容。
連買(mǎi)了三本 就這本給我的印象最深,可以好好看一看這本書(shū),雖然項(xiàng)目開(kāi)發(fā)中hibernate部分的都不要求怎么寫(xiě),但是懂了總比沒(méi)懂的好,另外《深入淺出hibernate》也不錯(cuò)
進(jìn)入書(shū)籍看內(nèi)容,寫(xiě)的很詳細(xì),基本都能點(diǎn)到關(guān)鍵的點(diǎn),可是調(diào)出來(lái)看書(shū)的框架和編書(shū)邏輯,沒(méi)太明白,反正我不是按照順序看下去的,此外,講hibernate竟然沒(méi)annotation相關(guān),桑心
剛收到,沒(méi)接到快遞電話(huà),給我放門(mén)口某處了。看起來(lái)還不錯(cuò)。不過(guò)我選的是周末送上門(mén)啊,怎么第二天就來(lái)啦?
相比較其他Hibernate的書(shū),這本是一個(gè)非常不錯(cuò)的了。
學(xué)習(xí)Hibernate比較好的書(shū),適合用來(lái)入門(mén),也適合在以后當(dāng)做工具書(shū)使用
第一章就看不太懂,要具備相當(dāng)?shù)臄?shù)據(jù)庫(kù)知識(shí),相信看懂后會(huì)有不少收獲
好久沒(méi)在當(dāng)當(dāng)買(mǎi)書(shū)了,這次來(lái)了個(gè)小小的驚喜,包裝很好,外面有紙盒,里面有防壓隔層,書(shū)很新,紙質(zhì)也不錯(cuò),非常滿(mǎn)意,光盤(pán)也有。內(nèi)容還沒(méi)來(lái)得急看,暫時(shí)不評(píng)論了,很多人推薦,內(nèi)容應(yīng)該查不到哪去~
還可以 買(mǎi)本孫老師的structs 原理精通,那本書(shū) 對(duì)structs原理講的很詳細(xì),這本hibernate也是經(jīng)典之做,它的tomcat,servlet 那本 也很好,反正 適合中國(guó)開(kāi)發(fā)者用.建議看遍視頻然后想了解更深入的時(shí)候 再看這本書(shū)
由于時(shí)間關(guān)系,沒(méi)怎么看。但對(duì)應(yīng)的軟件版本不是很新了。