出版時(shí)間:2008-5 出版社:電子工業(yè)出版社 作者:馮曼菲 頁(yè)數(shù):508 字?jǐn)?shù):835000
Tag標(biāo)簽:無(wú)
內(nèi)容概要
本書全面介紹了JPA(Java Persistence API)的相關(guān)知識(shí)。全書共分4篇,第1篇介紹了JPA產(chǎn)生的背景及JPA的運(yùn)行環(huán)境、流行的開(kāi)發(fā)工具IDE等;第2篇介紹了 JPA基本知識(shí),包括映射實(shí)體、映射實(shí)體關(guān)系、實(shí)體管理器及JPQL的相關(guān)知識(shí);第3篇進(jìn)一步介紹了關(guān)于JPA的高級(jí)應(yīng)用,包括持久化上下文、XML映射文件、打包和部署、JPA實(shí)現(xiàn)框架和與Spring集成等;第4篇介紹了三個(gè)完整案例,分別是學(xué)生成績(jī)管理系統(tǒng)(Servlet+JPA)、寵物商店(Swing+JPA)、博客系統(tǒng)(Struts2+Spring2+JPA)。 本書結(jié)構(gòu)清晰,注重實(shí)戰(zhàn),深入淺出,非常適合JPA開(kāi)發(fā)人員學(xué)習(xí)使用,同時(shí)也可用做高校相關(guān)專業(yè)師生和社會(huì)培訓(xùn)班的教材。
作者簡(jiǎn)介
馮曼菲擅長(zhǎng)Java企業(yè)級(jí)應(yīng)用開(kāi)發(fā),擁有豐富的JavaEE企業(yè)級(jí)項(xiàng)目構(gòu)建的經(jīng)驗(yàn),曾參與用友移動(dòng)商街、M-ERP平臺(tái)的技術(shù)架構(gòu)的設(shè)計(jì)和開(kāi)發(fā)。在多年從事大型項(xiàng)目的開(kāi)發(fā)過(guò)程中積累了豐富的實(shí)戰(zhàn)經(jīng)驗(yàn),并對(duì)UML、設(shè)計(jì)模式等都有較為深入的理解和應(yīng)用,理論功底深厚,實(shí)踐經(jīng)驗(yàn)豐富。
書籍目錄
第一篇 初識(shí)JPA 第1章 JPA概述 1.1 什么是數(shù)據(jù)持久化 1.2 Java持久化技術(shù) 1.2.1 序列化(Serialization) 1.2.2 JDBC 1.2.3 關(guān)系對(duì)象映射(ORM) 1.2.4 對(duì)象數(shù)據(jù)庫(kù)(ODB) 1.2.5 Java數(shù)據(jù)對(duì)象(JDO) 1.2.6 EJB 2.X 1.3 JPA(Java Persistence API)概述 1.3.1 什么是JPA 1.3.2 JPA的歷史 1.3.3 下載JPA規(guī)范 1.3.4 JPA的優(yōu)勢(shì) 1.3.5 EJB 3與JPA的關(guān)系 1.3.6 常見(jiàn)的實(shí)現(xiàn)JPA的框架 1.4 對(duì)象關(guān)系映射(ORM) 1.4.1 什么是對(duì)象關(guān)系映射 1.4.2 對(duì)象關(guān)系映射模式 1.5 本章小結(jié) 第2章 搭建JPA開(kāi)發(fā)和運(yùn)行環(huán)境 2.1 JBoss概述 2.1.1 JBoss Application Server 2.1.2 JBoss IDE for Eclipse 2.2 JBoss應(yīng)用服務(wù)器的搭建 2.2.1 下載和安裝JBoss服務(wù)器 2.2.2 啟動(dòng)JBoss服務(wù)器 2.2.3 停止JBoss服務(wù)器 2.2.4 JBoss的文件目錄結(jié)構(gòu) 2.3 JBoss IDE開(kāi)發(fā)環(huán)境的搭建 2.3.1 下載JBoss IDE for Eclipse 2.3.2 Eclipse中配置JBoss 2.3.3 Eclipse中啟動(dòng)和停止JBoss 2.4 MySQL數(shù)據(jù)庫(kù)的下載和安裝 2.4.1 MySQL數(shù)據(jù)庫(kù)概述 2.4.2 下載MySQL 2.4.3 安裝MySQL 2.4.4 運(yùn)行MySQL 2.4.5 下載MySQL客戶端 2.5 本章小結(jié) 第3章 JPA之初體驗(yàn) 3.1 第一個(gè)Entity實(shí)體類 3.1.1 第一個(gè)POJO類 3.1.2 數(shù)據(jù)庫(kù)中對(duì)應(yīng)的表 3.1.3 使用注釋(Annotations)配置ORM映射 3.1.4 配置persistence.xml 3.2 第一個(gè)SessionBean 3.2.1 定義Remote接口 3.2.2 SessionBean類 3.3 使用EntityManager操作實(shí)體 3.3.1 依賴注入EntityManager 3.3.2 添加Entity 3.3.3 根據(jù)主鍵查找Entity 3.3.4 更新Entity 3.3.5 刪除Entity 3.3.6 執(zhí)行查詢 3.4 部署EJB 3.4.1 打EJB-JAR包 3.4.2 部署EJB 3.4.3 配置DataSource數(shù)據(jù)源 3.4.4 啟動(dòng)JBoss服務(wù)器 3.4.5 查看JBoss控制臺(tái)JMX-Console 3.5 調(diào)用EJB的Client 3.5.1 TestClient類 3.5.2 運(yùn)行Client 3.6 本章小結(jié) 第4章 JPA開(kāi)發(fā)工具 4.1 Eclipse Dali JPA 概述 4.1.1 什么是Dali JPA 4.1.2 下載Dali JPA 4.1.3 Dali JPA界面預(yù)覽 4.2 連接數(shù)據(jù)庫(kù) 4.3 開(kāi)始JPA開(kāi)發(fā) 4.3.1 創(chuàng)建JPA項(xiàng)目 4.3.2 創(chuàng)建持久化類 4.4 本章小結(jié) 第二篇 JPA進(jìn)階 第5章 映射持久化對(duì)象(Entity) 5.1 實(shí)體映射基礎(chǔ) 5.1.1 簡(jiǎn)單的POJO類 5.1.2 映射實(shí)體(@Entity) 5.1.3 無(wú)參的構(gòu)造方法 5.1.4 實(shí)現(xiàn)Serializable接口 5.1.5 可繼承性 5.1.6 標(biāo)注主鍵(@Id) 5.1.7 默認(rèn)實(shí)體映射 5.2 映射表和字段 5.2.1 映射表(@Table) 5.2.2 映射方法和屬性(@Column) 5.2.3 可持久化的基本數(shù)據(jù)類型 5.2.4 映射優(yōu)化一:基本數(shù)據(jù)類型VS封裝類 5.2.5 映射優(yōu)化二:@Basic設(shè)置加載方式 5.3 主鍵映射 5.3.1 主鍵標(biāo)識(shí)(@Id) 5.3.2 自增主鍵 5.3.3 表生成器(@ TableGenerator) 5.3.4 Sequence生成器(@ Sequence) 5.3.5 Identity生成器 5.3.6 復(fù)合主鍵(@IdClass) 5.3.7 嵌入式主鍵(@EmbeddedId) 5.3.8 幾種主鍵生成策略的比較 5.4 映射特殊類型 5.4.1 映射Blob和Clob類型(@Lob) 5.4.2 映射時(shí)間(Temporal)類型(@Temporal) 5.4.3 映射枚舉(Enumerated)型 5.5 映射非持久化類型(@Transient) 5.6 本章小結(jié) 第6章 實(shí)體關(guān)系映射 6.1 實(shí)體關(guān)系概述 6.1.1 實(shí)體關(guān)系的方向性 6.1.2 實(shí)體關(guān)系的數(shù)量性 6.2 一對(duì)一(@OneToOne) 6.2.1 單向關(guān)聯(lián)(Unidirectional) 6.2.2 一對(duì)一(@ OneToOne) 6.2.3 關(guān)聯(lián)指定列(@JoinColumn) 6.2.4 雙向關(guān)聯(lián)(Bidirectional) 6.2.5 主鍵關(guān)聯(lián)(@PrimaryKeyJoinColumn) 6.2.6 默認(rèn)關(guān)聯(lián) 6.2.7 一對(duì)一映射的一般步驟 6.3 一對(duì)多(@OneToMany) 6.3.1 一對(duì)多模型(單向) 6.3.2 映射策略 89 6.3.3 映射策略——外鍵關(guān)聯(lián) 6.3.4 一對(duì)多(@OneToMany) 6.3.5 映射策略——表關(guān)聯(lián) 6.3.6 表關(guān)聯(lián)(@ JoinTable) 6.3.7 默認(rèn)關(guān)聯(lián) 6.4 多對(duì)一(@ManyToOne) 6.4.1 多對(duì)一 模型(單向) 6.4.2 映射策略——外鍵關(guān)聯(lián) 6.4.3 多對(duì)一(@ManyToOne) 6.4.4 默認(rèn)關(guān)聯(lián) 6.5 高級(jí)一對(duì)多和多對(duì)一映射 6.5.1 雙向關(guān)聯(lián)模型 6.5.2 雙向關(guān)聯(lián) 6.5.3 一對(duì)多(多對(duì)一)映射的一般步驟 6.6 多對(duì)多(@ManyToMany) 6.6.1 多對(duì)多模型(單向) 6.6.2 映射策略——表關(guān)聯(lián) 6.6.3 @ManyToMany 6.6.4 雙向關(guān)聯(lián)模型 6.6.5 默認(rèn)關(guān)聯(lián) 6.6.6 多對(duì)多映射的一般步驟 6.7 集合類的選擇 6.7.1 集合類的區(qū)別 6.7.2 帶排序的集合 6.7.3 帶Key值的集合 6.8 關(guān)系映射示例:客戶關(guān)系管理系統(tǒng) 6.8.1 實(shí)體關(guān)系類圖 6.8.2 數(shù)據(jù)庫(kù)表結(jié)構(gòu) 6.8.3 客戶實(shí)體 6.8.4 地址實(shí)體 6.8.5 聯(lián)系人實(shí)體 6.8.6 頭像實(shí)體 6.8.7 電話實(shí)體 6.8.8 訂單實(shí)體 6.8.9 訂單明細(xì)實(shí)體 6.8.10 產(chǎn)品實(shí)體 6.9 本章小結(jié) 第7章 實(shí)體映射的高級(jí)應(yīng)用 7.1 多表映射 7.1.1 兩個(gè)表映射為一個(gè)實(shí)體 7.1.2 從表注釋(@ SecondaryTable) 7.1.3 多個(gè)表映射為一個(gè)實(shí)體 7.1.4 多個(gè)從表注釋(@ SecondaryTables) 7.2 嵌入映射 7.2.1 嵌入映射表結(jié)構(gòu) 7.2.2 嵌入類 7.2.3 嵌入到實(shí)體 7.2.4 映射屬性(@AttributeOverride) 7.3 實(shí)體的繼承策略 7.3.1 類結(jié)構(gòu)關(guān)系圖 7.3.2 三種繼承策略 7.3.3 繼承關(guān)系的實(shí)體保存在一個(gè)表(SINGLE_TABLE) 7.3.4 每個(gè)實(shí)體子類保存在一個(gè)表(JOINED) 7.3.5 每個(gè)實(shí)體類保存在一個(gè)表(TABLE_PER_CLASS) 7.3.6 三種繼承策略對(duì)比 7.4 深入實(shí)體繼承 7.4.1 繼承自抽象(abstract)實(shí)體類 7.4.2 繼承自非映射實(shí)體類(Mapped Superclasses) 7.4.3 繼承自非實(shí)體類 7.4.4 繼承的設(shè)計(jì)重構(gòu) 7.4.5 帶繼承關(guān)系的實(shí)體查詢(多態(tài)) 7.5 本章小結(jié) 第8章 實(shí)體管理器(EntityManager) 8.1 實(shí)體管理器概述 8.1.1 什么是實(shí)體管理器 8.1.2 Entity Manager API 8.1.3 EntityManager方法詳解 8.2 操作實(shí)體(CRUD) 8.2.1 創(chuàng)建實(shí)體(持久化) 8.2.2 持久化帶關(guān)系的實(shí)體 8.2.3 根據(jù)主鍵查找實(shí)體 8.2.4 實(shí)體屬性及實(shí)體的加載方式 8.2.5 更新實(shí)體 8.2.6 更新實(shí)體關(guān)系 8.2.7 刪除實(shí)體 8.2.8 刪除關(guān)聯(lián)的實(shí)體 8.3 實(shí)體的生命周期 8.3.1 實(shí)體的幾種狀態(tài) 8.3.2 瞬時(shí)狀態(tài)(Transient) 8.3.3 持久化狀態(tài)(Persisted) 8.3.4 托管狀態(tài)(Attatched或Managed) 8.3.5 游離狀態(tài)(Detached) 8.3.6 銷毀狀態(tài)(Removed) 8.3.7 分析實(shí)體狀態(tài)實(shí)例 8.4 實(shí)體的高級(jí)操作 8.4.1 實(shí)體的聯(lián)級(jí)操作 8.4.2 獲得實(shí)體的另一種方式 8.4.3 同步數(shù)據(jù)庫(kù)(flush與flushType) 8.4.4 refresh()和clear()方法 8.5 實(shí)體監(jiān)聽(tīng)器(Listener) 8.5.1 回調(diào)事件(Callback Events) 8.5.2 監(jiān)聽(tīng)器定義在實(shí)體中 8.5.3 監(jiān)聽(tīng)器定義在實(shí)體外 8.5.4 默認(rèn)實(shí)體監(jiān)聽(tīng)器 8.5.5 繼承中的實(shí)體監(jiān)聽(tīng)器 8.5.6 監(jiān)聽(tīng)器的調(diào)用順序 8.5.7幾種監(jiān)聽(tīng)實(shí)體方式的比較 8.6 本章小結(jié) 第9章 查詢(Query) 9.1 Query 概述 9.1.1 一個(gè)簡(jiǎn)單的查詢示例 9.1.2 Query API 9.1.3 Query 方法詳解 9.1.4 Query的簡(jiǎn)化寫法 9.2 JPQL入門 9.2.1 查詢實(shí)體 9.2.2 查詢實(shí)體屬性 9.2.3 查詢關(guān)聯(lián)實(shí)體 9.3 準(zhǔn)備查詢 9.3.1 查詢參數(shù)方法一——命名設(shè)置參數(shù) 9.3.2 查詢參數(shù)方法二——位置設(shè)置參數(shù) 9.3.3 不帶參數(shù)的查詢 9.3.4 查詢策略的選擇 9.3.5 分頁(yè)查詢 9.3.6 設(shè)置提示(Hints) 9.3.7 設(shè)置提交模式(FlushMode) 9.4 命名查詢(Named Query) 9.4.1 命名查詢示例 9.4.2 定義查詢命名 9.4.3 @NamedQuery注釋 9.5 查詢結(jié)果的處理 9.5.1 執(zhí)行查詢 9.5.2 查詢結(jié)果的類型 9.5.3 查詢結(jié)果為實(shí)體 9.5.4 查詢結(jié)果為基本數(shù)據(jù)類型 9.5.5 查詢結(jié)果為數(shù)組 9.5.6 查詢結(jié)果為自定義對(duì)象 9.6 本地查詢(Native Query) 9.6.1 本地查詢概述 9.6.2 執(zhí)行本地查詢 9.6.3 查詢結(jié)果與實(shí)體映射 9.6.4 自定義查詢映射 9.6.5 @SqlResultSetMapping 9.6.6 @NamedNativeQuery本地命名查詢 9.7 查詢技巧 9.7.1 日期類型的查詢 9.7.2 動(dòng)態(tài)查詢 9.8 本章小結(jié) 第10章 查詢語(yǔ)言(JPQL) 10.1 JPQL基礎(chǔ) 10.1.1 JPQL基本語(yǔ)法 10.1.2 SELECT子句 10.1.3 繼承實(shí)體的查詢 10.2 FROM語(yǔ)句 10.2.1 FROM基本語(yǔ)法 10.2.2 基于集合實(shí)體的查詢(關(guān)聯(lián)查詢) 10.2.3 關(guān)聯(lián)查詢 10.2.4 內(nèi)連接(INNER JOIN) 10.2.5 左連接(LEFT JOIN) 10.2.6 抓取連接(FETCH JOIN) 10.2.7 唯一性查詢(DISTINCT) 10.3 WHERE語(yǔ)句 10.3.1 WHERE基本語(yǔ)法 10.3.2 直接量(Literals) 10.3.3 查詢條件操作符優(yōu)先級(jí) 10.3.4 算術(shù)操作符(Arithmetic Operators) 10.3.5 邏輯操作符(Logic Operators) 10.3.6 比較操作符(Comparison Operators) 10.3.7 BETWEEN操作符 10.3.8 IN操作符 10.3.9 LIKE操作符 10.3.10 NULL操作符 10.3.11 EMPTY操作符 10.3.12 MEMBER OF操作符 10.4 函數(shù)表達(dá)式 10.4.1 字符串函數(shù) 10.4.2 數(shù)值函數(shù) 10.4.3 日期函數(shù) 10.5 子查詢 10.5.1 基本子查詢 10.5.2 EXISTS表達(dá)式 10.5.3 ALL和ANY表達(dá)式 10.6 分組查詢 10.6.1 分組查詢基本語(yǔ)法 10.6.2 分組查詢函數(shù) 10.7 ORDER BY表達(dá)式 10.8 批量操作 10.8.1 批量更新 10.8.2 批量刪除 10.8.3 執(zhí)行批量操作 10.9 本章小結(jié) 第三篇 JPA高級(jí)應(yīng)用 第11章 持久化上下文 11.1 獲得EntityManager對(duì)象 11.1.1 Java EE環(huán)境與J2SE環(huán)境 11.1.2 兩種類型的EntityManager對(duì)象 11.1.3 容器托管的(container-managed)EntityManager對(duì)象 11.1.4 應(yīng)用托管的(application-managed)EntityManager對(duì)象 11.1.5 ThreadLocal的使用 11.2 實(shí)體管理器工廠(EntityManagerFactory) 11.2.1 javax.persistenc.Persistence API 11.2.2 EntityManagerFactory API 11.2.3 實(shí)現(xiàn)自己的JPA 11.3 容器托管的EntityManager持久化上下文 11.3.1 事務(wù)范圍TRANSACTION 11.3.2 擴(kuò)展范圍EXTENDED 11.4 事務(wù)管理 11.4.1 事務(wù)與EntityManager 11.4.2 JTA管理事務(wù) 11.4.3 RESOURCE_LOCAL管理事務(wù) 11.4.4 EntityTransaction API 11.5 應(yīng)用托管的EntityManager的持久化上下文 11.5.1 無(wú)狀態(tài)的會(huì)話Bean與JTA事務(wù)(事務(wù)范圍) 11.5.2 無(wú)狀態(tài)的會(huì)話Bean與JTA事務(wù)(擴(kuò)展范圍) 11.5.3 有狀態(tài)的會(huì)話Bean與JTA事務(wù) 11.5.4 RESOURCE_LOCAL事務(wù) 11.6 本章小結(jié) 第12章 XML映射文件 12.1 XML映射配置VS注釋 12.2 映射文件概述 12.2.1 映射文件的保存位置 12.2.2 獲取映射文件DTD 12.3 映射基礎(chǔ) 12.3.1 映射文件的基本結(jié)構(gòu) 12.3.2 映射文件的基本元素 12.4 配置注釋< persistence-unit-metadata > 12.4.1 禁用注釋 12.4.2 持久化單元的默認(rèn)配置 12.5 映射文件的默認(rèn)配置 12.5.1 默認(rèn)包名 12.5.2 默認(rèn)schema 12.5.3 默認(rèn)catalog 12.5.4 默認(rèn)訪問(wèn)類型 12.6 配置查詢、生成器和查詢結(jié)果 12.6.1 sequence生成器 12.6.2 表生成器 12.6.3 命名查詢 12.6.4 本地命名查詢 12.6.5 查詢結(jié)果映射 2.7 配置實(shí)體 12.7.1 基本配置 12.7.2 配置表 12.7.3 配置從表 12.7.4 配置屬性 12.7.5 配置實(shí)體關(guān)系 12.8 配置繼承 12.8.1 配置所有實(shí)體保存為一個(gè)表(SINGLE_TABLE) 12.8.2 每個(gè)實(shí)體子類保存在一個(gè)表(JOINED) 12.8.3 配置非實(shí)體類 12.9 配置嵌入類 12.9.1 配置類 12.9.2 和配置嵌入實(shí)體類 12.10 配置實(shí)體監(jiān)聽(tīng)器 12.10.1 監(jiān)聽(tīng)器定義在實(shí)體內(nèi) 12.10.2 監(jiān)聽(tīng)器定義在實(shí)體外 12.10.3 禁用父類監(jiān)聽(tīng)器 12.10.4 禁用默認(rèn)監(jiān)聽(tīng)器 12.11 本章小結(jié) 第13章 打包和部署 13.1 Java EE應(yīng)用打包概述 13.1.1 Java EE包的類型 13.1.2 EAR包結(jié)構(gòu) 13.1.3 EJB-JAR包結(jié)構(gòu) 13.1.4 WAR包結(jié)構(gòu) 13.2 Java EE類加載機(jī)制 13.2.1 Java類加載器 13.2.2 類加載順序模型 13.2.3 Java EE應(yīng)用的加載順序 13.2.4 類加載原理示例 13.3 配置persistence.xml 13.3.1 保存位置 13.3.2 persistence.xml的基本結(jié)構(gòu) 13.3.3 配置持久化單元名稱 13.3.4 配置事務(wù)類型 13.3.5 配置實(shí)現(xiàn)者 13.3.6 配置數(shù)據(jù)源 13.3.7 配置映射文件 13.3.8 配置管理類 13.3.9 配置自定義配置 13.4 JPA打包最佳實(shí)踐 13.4.1 J2SE打包最佳實(shí)踐 13.4.2 J2EE打包最佳實(shí)踐——與EJB組件 13.4.3 J2EE打包最佳實(shí)踐——與Web應(yīng)用 13.5 本章小結(jié) 第14章 JPA實(shí)現(xiàn)框架 14.1 Hibernate JPA 14.1.1 Hibernate 與JPA 14.1.2 Hibernate下載 14.1.3 配置方式 14.1.4 基本配置 14.1.5 配置日志 14.1.6 配置緩存 14.1.7 配置JDBC和數(shù)據(jù)庫(kù) 14.1.8 其他的常用配置 14.2 OpenJPA 14.2.1 OpenJPA與JPA 14.2.2 OpenJPA下載 14.2.3 配置日志 14.2.4 配置緩存 14.2.5 配置JDBC和數(shù)據(jù)庫(kù) 14.2.6 增強(qiáng)器的使用(Enhancer) 14.3 Toplink JPA 14.3.1 Toplink 與JPA 14.3.2 Toplink下載 14.3.3 配置日志 14.3.4 配置緩存 14.3.5 配置JDBC和數(shù)據(jù)庫(kù) 14.3.6 配置DDL 14.3.7 其他自定義配置 14.3.8 配置查詢優(yōu)化 14.3.9 加載優(yōu)化 14.4 本章小結(jié) 第15章 JPA與Spring集成 15.1 Spring概述 15.1.1 什么是Spring 15.1.2 Spring的特性 15.1.3 Spring與JPA 15.2 開(kāi)始Spring之旅 15.2.1 IoC容器 15.2.2 普通的Bean 15.2.3 容器管理的Bean 15.2.4 在容器中運(yùn)行 15.3 Spring中集成JPA 15.3.1 集成前的準(zhǔn)備 15.3.2 配置EntityManagerFactory 15.3.3 配置事務(wù)Transaction 15.3.4 運(yùn)行程序 15.4 Spring Web框架 15.4.1 Spring Web概述 15.4.2 配置Spring Web應(yīng)用 15.4.3 開(kāi)始Spring Web之旅 15.5 Spring Web集成JPA 15.5.1 集成前的準(zhǔn)備 15.5.2 配置數(shù)據(jù)源 15.5.3 注入業(yè)務(wù)邏輯 15.5.4 運(yùn)行程序 15.6 本章小結(jié) 第四篇 典型案例 第16章 學(xué)生成績(jī)管理系統(tǒng)(Servlet+JPA) 16.1 系統(tǒng)概述 16.1.1 需求描述 16.1.2 系統(tǒng)預(yù)覽 16.2 系統(tǒng)構(gòu)架 16.2.1 系統(tǒng)結(jié)構(gòu) 16.2.2 CharacterFilter 16.2.3 異常處理 16.3 數(shù)據(jù)庫(kù)設(shè)計(jì) 16.3.1 數(shù)據(jù)表UML 16.3.2 SQL腳本 16.4 JPA實(shí)體設(shè)計(jì) 16.4.1 JPA實(shí)體UML 16.4.2 JPA實(shí)體類代碼 16.4.3 persistence.xml配置 16.4.4 JPA實(shí)體的部署 16.5 班級(jí)模塊 16.5.1 添加頁(yè)面addClass.jsp 16.5.2 添加班級(jí) 16.5.3 使用標(biāo)注獲取EntityManagerFactory 380 16.5.4 班級(jí)列表 16.5.5 修改班級(jí) 16.5.6 刪除班級(jí) 16.6 課程模塊 16.6.1 添加、刪除、修改課程 16.6.2 選擇聽(tīng)課學(xué)生 16.7 學(xué)生模塊 16.7.1 分頁(yè)顯示學(xué)生列表 16.7.2 添加修改刪除學(xué)生 16.8 分?jǐn)?shù)模塊 16.8.1 添加學(xué)生成績(jī) 16.8.2 列出學(xué)生成績(jī) 16.9 本章小結(jié) 第17章 寵物商店 (Swing+JPA) 17.1 系統(tǒng)概述 17.1.1 需求描述 17.1.2 系統(tǒng)預(yù)覽 17.2 系統(tǒng)構(gòu)架 17.2.1 系統(tǒng)構(gòu)架 17.2.2 實(shí)體類設(shè)計(jì) 17.2.3 業(yè)務(wù)類實(shí)現(xiàn) 17.2.4 Session Bean查找 17.2.5 persistence.xml配置 17.2.6 EJB3組件部署 17.3 登錄對(duì)話框 17.3.1 登錄對(duì)話框 17.3.2 異常信息顯示 17.4 主購(gòu)物窗口 17.4.1 主購(gòu)物窗口 17.4.2 主購(gòu)物窗口代碼 17.4.3 寵物列表Model 17.4.4 添加寵物類別命令 17.4.5 刪除寵物類別命令 17.4.6 添加寵物命令 17.5 購(gòu)買窗口 17.5.1 購(gòu)買對(duì)話框 17.5.2 購(gòu)物車對(duì)話框 17.5.3 付款操作 17.6 本章小結(jié) 第18章 博客系統(tǒng)(Struts2+ Spring2+JPA) 18.1 系統(tǒng)概述 18.1.1 需求描述 18.1.2 系統(tǒng)預(yù)覽 18.2 系統(tǒng)構(gòu)架 18.2.1 系統(tǒng)構(gòu)架 18.2.2 執(zhí)行流程 18.3 實(shí)體類設(shè)計(jì) 18.3.1 基礎(chǔ)實(shí)體BaseBean 18.3.2 用戶實(shí)體Person 18.3.3 愛(ài)好實(shí)體Hobby 18.3.4 博客實(shí)體Blog 18.3.5 類別實(shí)體Category 18.3.6 文章實(shí)體Post 18.3.7 登錄信息類PersonInfo 18.3.8 persistence.xml 18.4 業(yè)務(wù)模塊設(shè)計(jì) 18.4.1 DAO層接口 18.4.2 DAO層實(shí)現(xiàn) 18.4.3 公共Service層接口 18.4.4 公共Service層實(shí)現(xiàn) 18.4.5 用戶Service接口 18.5 用戶模塊 18.5.1 BaseAction基礎(chǔ)類 18.5.2 用戶注冊(cè) 18.5.3 struts.xml配置 18.5.4 ApplicationContext.xml配置 18.5.5 web.xml配置 18.5.6 register.jsp 18.5.7 header.jsp,footer.jsp 18.5.8 注冊(cè)表單驗(yàn)證 18.5.9 異常處理 18.5.10 用戶照片文件上傳 18.5.11 用戶登錄注銷 18.6 博客模塊 18.6.1 開(kāi)通博客 18.6.2 瀏覽博客 18.7 類別模塊 18.7.1 類別列表 18.7.2 添加類別 18.7.3 瀏覽類別 18.8 文章模塊 18.8.1 列出文章 18.8.2 添加文章 18.8.3 瀏覽文章 18.9 本章小結(jié) 附錄A JPA ORM Annotation參考 附錄B 其他的JPA Annotation參考
章節(jié)摘錄
第一篇 初識(shí)JPA第1章 JPA概述1.1 什么是數(shù)據(jù)持久化數(shù)據(jù)持久化,顧名思義就是把程序中的數(shù)據(jù)以栽種形式保存到到存儲(chǔ)介質(zhì)中,以達(dá)到持久化的目的。當(dāng)程序運(yùn)行時(shí),一些數(shù)據(jù)是臨時(shí)保存在內(nèi)存中,一旦退出系統(tǒng),這些數(shù)據(jù)就丟失了。如果使用某種手段將數(shù)據(jù)保存在硬盤或數(shù)據(jù)庫(kù),這了使退出系統(tǒng)后又重新啟動(dòng)系統(tǒng),這些數(shù)據(jù)仍然可以重新找回來(lái)。例如,管理員向一個(gè)用戶管理系統(tǒng)中添加了一個(gè)用戶的資料,那么這個(gè)系統(tǒng)需要將新添加的資料保存到數(shù)據(jù)庫(kù)中,否則系統(tǒng)退出或電腦重啟后該用戶資料就會(huì)丟失。將數(shù)據(jù)從內(nèi)存保存到數(shù)據(jù)庫(kù)中,這便是數(shù)據(jù)的持久化。婁然,保存到數(shù)據(jù)庫(kù)只是持久化方式中的一種,也可以保存在其他的永久存儲(chǔ)介質(zhì)中。1.2 Java持久化技術(shù)在Java領(lǐng)域中,持久化也是企業(yè)應(yīng)用開(kāi)發(fā)中的一項(xiàng)必不可少的技術(shù)。Java社區(qū)在努力解決持久化數(shù)據(jù)管理的過(guò)程中,曾經(jīng)涌現(xiàn)出了非常多試圖解決這個(gè)問(wèn)題的技術(shù)方案。從最早的序列化(Serialzation)到JDBC、關(guān)系對(duì)象映射(ORM)、對(duì)象數(shù)據(jù)庫(kù)(ODB),再到IJB2.X、Java數(shù)據(jù)對(duì)象(JDO),一直到目前最新的Java持久化API (JPA).1.2.1 序列化(Serialization)序列化(Serialzation)也叫串行化,是Java對(duì)象的機(jī)制。只要某個(gè)實(shí)現(xiàn)了java.io.Serializable接口,就能夠使用java.io.ObjectOutputStream將該類對(duì)象以二進(jìn)制字節(jié)碼的形式寫到硬盤上,并能使用java.io.ObjectOutputStream將該對(duì)象從硬盤上還原。這樣,即使重啟了機(jī)器,該Java對(duì)象也能夠從硬盤上恢復(fù)。對(duì)應(yīng)簡(jiǎn)單的應(yīng)用,可以使用序列化實(shí)現(xiàn)對(duì)Java對(duì)象的持久化。序列化的對(duì)象一般為普通的Java Bean。
編輯推薦
《程序天下:EJB JPA數(shù)據(jù)庫(kù)持久層開(kāi)發(fā)實(shí)踐詳解》結(jié)構(gòu)清晰,注重實(shí)戰(zhàn),深入淺出,非常適合JPA開(kāi)發(fā)人員學(xué)習(xí)使用,同時(shí)也可用做高校相關(guān)專業(yè)師生和社會(huì)培訓(xùn)班的教材。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載