出版時(shí)間:2010-7 出版社:電子工業(yè)出版社 作者:孫衛(wèi)琴 頁數(shù):319
Tag標(biāo)簽:無
前言
在Java領(lǐng)域,訪問關(guān)系數(shù)據(jù)庫的最原始、最直接的方法是借助JDBCAPI。這種方式的優(yōu)點(diǎn)是運(yùn)行效率高,缺點(diǎn)是在Java程序代碼中嵌入大量SQL語句,使得項(xiàng)目難以維護(hù)。在開發(fā)具有分層結(jié)構(gòu)的企業(yè)級(jí)Java應(yīng)用時(shí),如圖P-l所示,可以通過JDBCAPI來開發(fā)單獨(dú)的持久化層,把數(shù)據(jù)庫訪問操作封裝起來,提供簡(jiǎn)潔的API,供業(yè)務(wù)邏輯層統(tǒng)一調(diào)用。但是,如果關(guān)系數(shù)據(jù)模型非常復(fù)雜,那么直接通過JDBCAPI來實(shí)現(xiàn)持久化層需要有專業(yè)的知識(shí)。對(duì)于企業(yè)應(yīng)用的開發(fā)人員,花費(fèi)大量時(shí)間從頭開發(fā)自己的持久化層不是很可行?! ⌒疫\(yùn)的是,目前在持久化層已經(jīng)有好多種現(xiàn)成的持久化軟件可供選用,有些是商業(yè)性的,如Top Link;有些是非商業(yè)性的,如JDO和Hibernate。Hibernate是一個(gè)基于Java的開放源代碼的持久化軟件,它對(duì)JDBC做了輕量級(jí)封裝,不僅提供ORM(Obiect Relation Mapping,對(duì)象一關(guān)系映射)服務(wù),還提供數(shù)據(jù)查詢和數(shù)據(jù)緩存功能,Java開發(fā)人員可以方便地通過Hibernate API來操縱數(shù)據(jù)庫?! ‖F(xiàn)在,越來越多的Java開發(fā)人員通過Hibernate來訪問關(guān)系數(shù)據(jù)庫,以節(jié)省和訪問數(shù)據(jù)庫有關(guān)的30%的JDBC編程工作量?! ”緯Y(jié)合大量典型的實(shí)例,由淺入深地介紹運(yùn)用目前最成熟的Hibernate3.3 版本來訪問關(guān)系數(shù)據(jù)庫的技術(shù)?! ”緯诒硎龇矫妫肓酥袊?guó)傳統(tǒng)文化中家喻戶曉的《西游記》人物孫悟空,以他學(xué)習(xí)Hibernate為主線,以為花果山實(shí)現(xiàn)信息化為案例,帶領(lǐng)讀者逐步領(lǐng)略Hibernate技術(shù)的種種神通妙用,大大增加了書的趣味性。
內(nèi)容概要
Hibernate是非常流行的對(duì)象-關(guān)系映射工具。本書由淺入深地介紹運(yùn)用目前最成熟的Hibernate 3.3版本進(jìn)行Java對(duì)象持久化的核心技術(shù)。本書主要介紹通過Hibernate API來訪問數(shù)據(jù)庫的方法,還介紹把Java對(duì)象模型映射到關(guān)系數(shù)據(jù)模型的各種技巧、處理并發(fā)問題及實(shí)現(xiàn)對(duì)話的種種方案。本書將幫助讀者編寫出具有合理的軟件架構(gòu),以及好的運(yùn)行性能和并發(fā)性能的實(shí)用Hibernate應(yīng)用。書中內(nèi)容注重理論與實(shí)踐相結(jié)合,列舉大量具有典型性和實(shí)用價(jià)值的Hibernate應(yīng)用實(shí)例,并提供詳細(xì)的開發(fā)和部署步驟?! ‰S書配套光盤內(nèi)容為本書所有范例源程序、本書涉及的軟件的最新版本的安裝程序?! ”緯诒硎龇矫妫肓酥袊?guó)傳統(tǒng)文化中家喻戶曉的《西游記》人物孫悟空,以他學(xué)習(xí)Hibernate為主線,以為花果山實(shí)現(xiàn)信息化為案例,帶領(lǐng)讀者逐步領(lǐng)略Hibernate技術(shù)的種種神通妙用,大大增加了書的趣味性。只要讀者具備了Java基礎(chǔ)知識(shí),就能輕松閱讀本書,快速掌握Hibernate技術(shù)。
作者簡(jiǎn)介
孫衛(wèi)琴
知名IT作家·Java系列暢銷書的作者。1997年畢業(yè)于上海交通大學(xué)·隨后從事基于Java的軟件開發(fā)工作,還從事Java方面的培訓(xùn)和咨詢工作。2002年開始Java技術(shù)領(lǐng)域的創(chuàng)作,其作品深受讀者好評(píng)·多部作品的發(fā)行量在國(guó)內(nèi)同類作品中屢居第一。
代表著作有:
《Hibernate逍遙游記》2010
《精通Hibernate:Java對(duì)象持久化技術(shù)詳解》(第2版)2010
《Tomcat與JavaWeb開發(fā)技術(shù)詳解》(第2版)2009
《Java網(wǎng)絡(luò)編程精解》2007
《Java面向?qū)ο缶幊獭?006
《精通Hibernate:Java對(duì)象持久化技術(shù)詳解》2005
《精通Struts:基于MVC的Java Web設(shè)計(jì)與開發(fā)》2004
《Tomcat與Java Web開發(fā)技術(shù)詳解》2004
《Java 2認(rèn)證考試指南與試題解析》2002
書籍目錄
第1章 訪問關(guān)系數(shù)據(jù)庫的途徑 1.1 創(chuàng)建關(guān)系數(shù)據(jù)庫表 1.2 訪問關(guān)系數(shù)據(jù)庫的途徑 1.2.1 通過數(shù)據(jù)庫的自帶客戶程序與數(shù)據(jù)庫服務(wù)器交互 1.2.2 通過Java程序與數(shù)據(jù)庫服務(wù)器交互 1.3 Java程序通過JDBC API訪問數(shù)據(jù)庫 1.4 Java程序通過Hibernate API訪問數(shù)據(jù)庫 1.5 Java對(duì)象的持久化概念 1.6 小結(jié) 第2章 第一個(gè)Hibernate應(yīng)用 2.1 創(chuàng)建Hibernate的配置文件 2.2 創(chuàng)建持久化類 2.3 創(chuàng)建數(shù)據(jù)庫Schema 2.4 創(chuàng)建對(duì)象-關(guān)系映射文件 2.5 通過Hibernate API操縱數(shù)據(jù)庫 2.5.1 Hibernate的初始化 2.5.2 訪問Hibernate的Session接口 2.6 運(yùn)行monkeys應(yīng)用 2.6.1 創(chuàng)建運(yùn)行本書范例的系統(tǒng)環(huán)境 2.6.2 創(chuàng)建monkeys應(yīng)用的目錄結(jié)構(gòu) 2.6.3 運(yùn)行monkeys應(yīng)用 2.6.4 給monkeys應(yīng)用加入用戶界面 2.7 小結(jié) 第3章 對(duì)象-關(guān)系映射基礎(chǔ) 3.1 持久化類的屬性及訪問方法 3.1.1 基本類型屬性和包裝類型屬性 3.1.2 Hibernate訪問持久化類屬性的策略 3.1.3 在持久化類的訪問方法中加入程序邏輯 3.1.4 設(shè)置派生屬性 3.1.5 控制insert和update語句 3.2 處理SQL引用標(biāo)識(shí)符 3.3 使用XML格式的配置文件 3.4 運(yùn)行本章的范例程序 3.5 小結(jié) 第4章 映射對(duì)象標(biāo)識(shí)符 4.1 關(guān)系數(shù)據(jù)庫按主鍵區(qū)分不同的記錄 4.1.1 把主鍵定義為自動(dòng)增長(zhǎng)標(biāo)識(shí)符類型 4.1.2 從序列(Sequence)中獲取自動(dòng)增長(zhǎng)的標(biāo)識(shí)符 4.2 Java語言按內(nèi)存地址區(qū)分不同的對(duì)象 4.3 Hibernate用對(duì)象標(biāo)識(shí)符(OID)來區(qū)分對(duì)象 4.4 Hibernate的內(nèi)置標(biāo)識(shí)符生成器的用法 4.4.1 increment標(biāo)識(shí)符生成器 4.4.2 identity標(biāo)識(shí)符生成器 4.4.3 sequence標(biāo)識(shí)符生成器 4.4.4 hilo標(biāo)識(shí)符生成器 4.4.5 native標(biāo)識(shí)符生成器 4.5 映射自然主鍵 4.6 小結(jié) 第5章 映射一對(duì)多關(guān)聯(lián)關(guān)系 5.1 建立多對(duì)一的單向關(guān)聯(lián)關(guān)系 5.1.1 關(guān)于TransientObjectException異常 5.1.2 級(jí)聯(lián)保存和更新 5.2 映射一對(duì)多雙向關(guān)聯(lián)關(guān)系 5.2.1 [set]元素的inverse屬性 5.2.2 級(jí)聯(lián)刪除 5.2.3 父子關(guān)系 5.3 小結(jié) 第6章 通過Hibernate操縱對(duì)象 6.1 理解Session的緩存 6.1.1 Session的緩存的作用 6.1.2 臟檢查及清理緩存的機(jī)制 6.2 Java對(duì)象在Hibernate持久化層的狀態(tài) 6.2.1 臨時(shí)對(duì)象的特征 6.2.2 持久化對(duì)象的特征 6.2.3 被刪除對(duì)象的特征 6.2.4 游離對(duì)象的特征 6.3 Session接口的詳細(xì)用法 6.3.1 Session的save()方法 6.3.2 Session的load()和get()方法 6.3.3 Session的update()方法 6.3.4 Session的saveOrUpdate()方法 6.3.5 Session的merge()方法 6.3.6 Session的delete()方法 6.4 級(jí)聯(lián)操縱對(duì)象圖 6.5 批量處理數(shù)據(jù) 6.5.1 通過Session來進(jìn)行批量操作 6.5.2 通過StatelessSession來進(jìn)行批量操作 6.5.3 通過HQL來進(jìn)行批量操作 6.6 Hibernate的二級(jí)緩存結(jié)構(gòu) 6.7 小結(jié) 第7章 Hibernate的檢索策略和檢索方式 7.1 Hibernate的檢索策略 7.1.1 類級(jí)別的檢索策略 7.1.2 一對(duì)多和多對(duì)多關(guān)聯(lián)的檢索策略 7.1.3 多對(duì)一和一對(duì)一關(guān)聯(lián)的檢索策略 7.1.4 在應(yīng)用程序中顯式指定迫切左外連接檢索策略 7.1.5 比較3種檢索策略 7.2 檢索方式 7.2.1 HQL檢索方式 7.2.2 QBC檢索方式 7.2.3 SQL檢索方式 7.3 小結(jié) 第8章 映射組成關(guān)系 8.1 建立精粒度對(duì)象模型 8.2 建立粗粒度關(guān)系數(shù)據(jù)模型 8.3 映射組成關(guān)系 8.3.1 區(qū)分值(Value)類型和實(shí)體(Entity)類型 8.3.2 在應(yīng)用程序中訪問具有組成關(guān)系的持久化類 8.4 映射復(fù)合組成關(guān)系 8.5 小結(jié) 第9章 Hibernate的映射類型 9.1 Hibernate的內(nèi)置映射類型 9.1.1 Java基本類型的Hibernate映射類型 9.1.2 Java時(shí)間和日期類型的Hibernate映射類型 9.1.3 Java大對(duì)象類型的Hibernate映射類型 9.1.4 JDK自帶的個(gè)別Java類的Hibernate映射類型 9.1.5 使用Hibernate內(nèi)置映射類型 9.2 客戶化映射類型 9.3 用客戶化映射類型取代Hibernate組件 9.4 運(yùn)行范例程序 9.5 小結(jié) 第10章 映射繼承關(guān)系 10.1 繼承關(guān)系樹的每個(gè)具體類對(duì)應(yīng)一個(gè)表 10.1.1 創(chuàng)建映射文件 10.1.2 操縱持久化對(duì)象 10.2 繼承關(guān)系樹的根類對(duì)應(yīng)一個(gè)表 10.2.1 創(chuàng)建映射文件 10.2.2 操縱持久化對(duì)象 10.3 繼承關(guān)系樹的每個(gè)類對(duì)應(yīng)一個(gè)表 10.3.1 創(chuàng)建映射文件 10.3.2 操縱持久化對(duì)象 10.4 選擇繼承關(guān)系的映射方式 10.5 小結(jié) 第11章 Java集合 11.1 Set(集) 11.1.1 Set的一般用法 11.1.2 HashSet類 11.1.3 TreeSet類 11.2 List(列表) 11.3 Map(映射) 11.4 小結(jié) 第12章 映射值類型集合 12.1 映射Set(集) 12.2 映射Bag(包) 12.3 映射List(列表) 12.4 映射Map 12.5 對(duì)集合排序 12.5.1 在數(shù)據(jù)庫中對(duì)集合排序 12.5.2 在內(nèi)存中對(duì)集合排序 12.6 小結(jié) 第13章 映射實(shí)體關(guān)聯(lián)關(guān)系 13.1 映射一對(duì)一關(guān)聯(lián) 13.1.1 按照外鍵映射 13.1.2 按照主鍵映射 13.2 映射單向多對(duì)多關(guān)聯(lián) 13.3 映射雙向多對(duì)多關(guān)聯(lián)關(guān)系 13.3.1 關(guān)聯(lián)兩端使用[set]元素 13.3.2 使用組件類集合 13.3.3 把多對(duì)多關(guān)聯(lián)分解為兩個(gè)一對(duì)多關(guān)聯(lián) 13.4 小結(jié) 第14章 聲明數(shù)據(jù)庫事務(wù) 14.1 數(shù)據(jù)庫事務(wù)的概念 14.2 聲明事務(wù)邊界的方式 14.3 在mysql.exe程序中聲明事務(wù) 14.4 Java應(yīng)用通過JDBC API聲明事務(wù) 14.5 Java應(yīng)用通過Hibernate API聲明事務(wù) 14.5.1 處理異常 14.5.2 Session與事務(wù)的關(guān)系 14.5.3 設(shè)定事務(wù)超時(shí) 14.6 小結(jié) 第15章 處理并發(fā)問題 15.1 多個(gè)事務(wù)并發(fā)運(yùn)行時(shí)的并發(fā)問題 15.1.1 第一類丟失更新 15.1.2 臟讀 15.1.3 虛讀 15.1.4 不可重復(fù)讀 15.1.5 第二類丟失更新 15.2 數(shù)據(jù)庫系統(tǒng)的鎖的基本原理 15.3 數(shù)據(jù)庫的事務(wù)隔離級(jí)別 15.3.1 在mysql.exe程序中設(shè)置隔離級(jí)別 15.3.2 在應(yīng)用程序中設(shè)置隔離級(jí)別 15.4 在應(yīng)用程序中采用悲觀鎖 15.5 利用Hibernate的版本控制來實(shí)現(xiàn)樂觀鎖 15.5.1 使用[version]元素 15.5.2 使用[timestamp]元素 15.5.3 對(duì)游離對(duì)象進(jìn)行版本檢查 15.6 實(shí)現(xiàn)樂觀鎖的其他方法 15.7 小結(jié) 第16章 管理Session和實(shí)現(xiàn)對(duì)話 16.1 Hibernate管理Session對(duì)象的方式 16.2 Session對(duì)象的生命周期與本地線程綁定 16.3 實(shí)現(xiàn)對(duì)話 16.3.1 使用游離對(duì)象 16.3.2 使用手工清理緩存模式下的Session 16.4 Hibernate委托程序來管理Session 16.5 小結(jié)
章節(jié)摘錄
第1章 訪問關(guān)系數(shù)據(jù)庫的途徑 1.1 創(chuàng)建關(guān)系數(shù)據(jù)庫表 悟空在他所熟悉的MySQL關(guān)系數(shù)據(jù)庫中創(chuàng)建了一張名為“MONKEYS”的表,表的結(jié)構(gòu)如圖1.1所示?! ONKEYS表用來存放猴子的基本信息,比如名字(NAME字段)、年齡(AGE字段)和性別(GENDER字段)。 MONKEYS表中的ID字段為主鍵(Primary Key,簡(jiǎn)稱PK)。數(shù)據(jù)庫表通過主鍵來保證每條記錄的唯一性,每條記錄的ID值都是唯一的。表的主鍵最好不具有任何業(yè)務(wù)含義,即不代表特定業(yè)務(wù)領(lǐng)域的某種信息。任何有業(yè)務(wù)含義的字段都有可能隨著業(yè)務(wù)需求的變化而被改變。關(guān)系數(shù)據(jù)庫學(xué)的最重要的理論之一就是:不要給主鍵賦予任何業(yè)務(wù)含義,這樣可以提高數(shù)據(jù)庫系統(tǒng)的可維護(hù)性?! 〖偃缰麈I具有了業(yè)務(wù)含義,會(huì)出現(xiàn)什么情況呢?以MONKEYS表為例,假定把NAME字段作為主鍵,這是一個(gè)具有業(yè)務(wù)含義的主鍵。假定一開始用戶的業(yè)務(wù)需求為:NAME字段為6位字符串,過了一年后,用戶改變了業(yè)務(wù)需求,規(guī)定NAME字段為8位字符串。當(dāng)業(yè)務(wù)需求改變后,就必須修改MONKEYS表中所有記錄的NAME主鍵的值,此外,對(duì)于那些參照MONKEYS表,并且把NAME字段作為外鍵的所有其他表,也需要修改表中所有記錄的NAME外鍵的值。
編輯推薦
學(xué)習(xí)Hibernate真的很有趣!作者孫衛(wèi)琴老師獨(dú)創(chuàng)寫作風(fēng)格,引入中國(guó)傳統(tǒng)文化中家喻戶曉的《西游記》人物孫悟空,以他學(xué)習(xí) Hibernate為主線,以為花果山實(shí)現(xiàn)信息化為案例,帶領(lǐng)讀者逐步領(lǐng)略Hibernate技術(shù)的種種神通妙用?! ≌莆誋ibernate真的不難!《Java開發(fā)專家·Hibernate逍遙游記》以通俗易懂的語言介紹Hibernate的主要技術(shù)及對(duì)象-關(guān)系映射的核心思想?! ?yīng)用Hibernate真的很簡(jiǎn)單!《Java開發(fā)專家·Hibernate逍遙游記》將理論與實(shí)踐相結(jié)合·列舉大量具有典型性和實(shí)用價(jià)值的Hibernate應(yīng)用實(shí)例·并提供詳細(xì)的開發(fā)和部署步驟。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載