出版時間:2009-9 出版社:電子工業(yè)出版社 作者:劉偉,張利國 編著 頁數(shù):441
Tag標簽:無
內(nèi)容概要
本書采用理論闡述、實例項目、視頻講解相結(jié)合的方式,全面講解了Hibernate Core、Hibernate Annotations、Hibernate Search、Hibernate EntityManager等內(nèi)容?! ∪珪?3章。第1~18章,講解Hibernate Core的內(nèi)容。第19章講解Hibernate Annotations內(nèi)容。第19章講解Hibernate Anonations和Hibernate EntityManager的內(nèi)容。第20章講解Hibernate Search的內(nèi)容。第21章講解Hibernate與Struts 2框架如何進行整合開發(fā)。第22章講解Hibernate與Spring框架如何進行整合開發(fā)。第23章,則詳細講解如何組合運用Hibernate、Struts 2和Spring框架,開發(fā)一個完整的網(wǎng)絡(luò)博客系統(tǒng)?! ∪珪Y(jié)構(gòu)嚴謹,層次清晰,語言生動,論述精準而深刻,程序?qū)嵗S富實用。本書需要讀者具有Java編程語言和HTML的基礎(chǔ)。本書還提供了大量的實例代碼,讀者可以自由使用,這些代碼非常實用,適合解決Hibernate開發(fā)中的實際問題。本書不僅適合用作普通高校或職業(yè)培訓(xùn)教材,更是Hibernate初學者和開發(fā)者的首選參考書。
書籍目錄
第1章 Hibernate起源 1.1 ORM框架 1.2 ORM核心理念 1.3 持久層概念 1.4 Hibernate 1.4.1 Hibernate Core 1.4.2 Hibernate Annotations 1.4.3 Hibernate EntityManager 1.4.4 Hibernate Search 1.4.5 Hibernate Shards 1.4.6 Hibernate Validator 1.4.7 Hibernate Tools 1.4.8 NHibernate 1.4.9 JBoss Seam 1.5 下載Hibernate 1.6 使用Hibernate的第1個例子 1.6.1 建立guestbook表 1.6.2 新建chapter01_first項目 1.6.3 項目文件列表 1.6.4 編寫hibernate.cfg.xml 1.6.5 編寫Guestbook.java 1.6.6 編寫Guestbook.hbm.xml 1.6.7 HibernateTest.java 1.6.8 運行HibernateTest程序 1.6.9 chapter01_first項目的運行過程第2章 Hibernate的核心接口與類 2.1 Configuration類 2.1.1 Hibernate配置文件 2.1.2 在應(yīng)用程序中設(shè)置新的屬性值 2.1.3 Hibernate的核心配置信息 2.1.4 數(shù)據(jù)庫方言類 2.2 SessionFactory接口 2.3 Session接口 2.3.1 save()方法 2.3.2 get()方法 2.3.3 load()方法 2.3.4 update()方法 2.3.5 delete()方法 2.4 Transaction接口 2.5 Query接口 2.6 Criteria接口 2.7 使用MyEclipse可視化開發(fā)Hibernate實例 2.7.1 設(shè)置MyEclipse連接Oracle數(shù)據(jù)庫 2.7.2 新建項目并增加Hibernate開發(fā)支持 2.7.3 自動生成Guestbook類與映射文件 2.7.4 編寫HibernateSessionFactoryUtil.java文件 2.7.5 編寫HibernateTest.java 2.7.6 程序運行結(jié)果 2.7.7 使用HQL編輯器調(diào)試HQL語句 2.8 Hibernate應(yīng)用的開發(fā)方式 2.8.1 自底向上,從數(shù)據(jù)庫表到持久化類 2.8.2 自上向下,持久化類到數(shù)據(jù)庫表 2.8.3 從中間出發(fā),向上與向下發(fā)展 2.9 設(shè)置Hibernate使用連接池 2.9.1 設(shè)置使用Tomcat中的連接池 2.9.2 使用C3P0連接池 2.9.3 使用自定義連接池 2.10 使用C3P0連接池 2.10.1 創(chuàng)建chapter02_c3p0項目 2.10.2 編輯hibernate.cfg.xml文件 2.10.3 chapter02_c3p0項目的運行與輸出 2.11 網(wǎng)絡(luò)留言本V2.0 2.11.1 建表 2.11.2 創(chuàng)建guestbookv2.0項目 2.11.3 編寫StringUtil.java文件 2.11.4 為項目添加Hibernate開發(fā)支持 2.11.5 修改hibernate.cfg.xml的內(nèi)容 2.11.6 生成Guestbook.java與Guestbook.hbm.xml文件 2.11.7 編寫Guestbook在于Dao.java文件 2.11.8 編寫GuestbookDaoHibernate.java文件 2.11.9 編寫HibernateFactorySessionUtil.java 2.11.10 編寫AddMessageServlet.java文件 2.11.11 編寫GetMessagesServlet.java文件 2.11.12 編寫CharacterEncodingFilter.java 2.11.13 修改web.xml文件 2.11.14 編寫header.jsp文件 2.11.15 編寫footer.htm文件 2.11.16 使用JSValidation 2.11.17 使用FCKeditor 2.11.18 編寫addMessage.jsp文件 2.11.19 編寫getMessages.jsp文件 2.11.20 編寫addResult.jsp文件 2.11.21 編寫error404.htm文件 2.11.22 編寫error500.jsp文件 2.11.23 程序運行輸出第3章 標識符屬性生成策略與對象識別 3.1 數(shù)據(jù)庫中的主鍵 3.1.1 自然主鍵 3.1.2 代理主鍵 3.2 標識符屬性 3.3 標識符屬性的生成策略 3.3.1 increment生成策略 3.3.2 identity生成策略 3.3.3 sequence生成策略 3.3.4 hilo生成策略未 3.3.5 seqhilo生成策略 3.3.6 uuid生成策略 3.3.7 guid生成策略 3.3.8 native生成策略 3.3.9 assigned生成策略 3.3.10 foreign生成策略 3.3.11 選擇標識符屬性生成策略 3.4 映射復(fù)合主鍵 3.4.1 數(shù)據(jù)準備 3.4.2 使用屬性映射復(fù)合主鍵 3.4.3 使用主鍵類映射復(fù)合主鍵 3.5 對象識別 3.5.1 Java中的對象識別 3.5.2 識別數(shù)據(jù)庫中數(shù)據(jù) 3.5.3 識別Hibernate中的持久化對象 3.6 Commons lang buider 3.6.1 安裝Commonclipse 3.6.2 使用Commonclipse第4章 持久化對象生命周期 4.1 持久化對象生命周期的狀態(tài) 4.1.1 Transient狀態(tài) 4.1.2 Persistent狀態(tài) 4.1.3 Detached狀態(tài) 4.1.4 Removed狀態(tài) 4.1.5 Session對象的“臟”數(shù)據(jù)檢查 4.2 Session接口的核心方法 4.2.1 saveOrUpdate()方法 4.2.2 merge()方法 4.2.3 flush()方法 4.2.4 close()方法 4.3 不可更改的持久化對象第5章 OSIV與泛型DAO模式 5.1 OSIV模式 5.1.1 使用Servlet過濾器實現(xiàn)OSIV模式 5.1.2 配置web.xml文件 5.2 泛型DAO的設(shè)計與實現(xiàn) 5.2.1 編寫泛型DAO接口 5.2.2 編寫泛型DAO的實現(xiàn)類 5.2.3 使用GenericDao接口 5.2.4 使用GenericDaoHibernate類 5.3 網(wǎng)絡(luò)留言本V2.1 5.3.1 新建guestbookv2.1項目 5.3.2 建立admin表 5.3.3 文件列表 5.3.4 生成Admin.java與Admin.hbm.xml文件 5.3.5 增加hibernate.cfg.xml文件 5.3.6 編寫AdminDao.java文件 5.3.7 編寫AdminDaoHibernate.java文件 5.3.8 修改GetMessagesServlet.java文件 5.3.9 編寫AdminUserServlet.java文件 5.3.10 編寫AuthenticationFilter.java文件 5.3.11 編寫ManageServlet.java文件 5.3.12 編寫login.jsp文件 5.3.13 修改validation-framework.js文件 5.3.14 修改validation-config.xml文件 5.3.15 編寫loginFail.jsp文件 5.3.16 編寫list.jsp文件 5.3.17 編寫edit.jsp文件 5.3.18 編寫editResult.jsp文件 5.3.19 編寫deleteResult.jsp文件 5.3.20 修改web.xml文件 5.3.21 程序運行結(jié)果第6章 Hibernate的集合映射 6.1 Set集合映射 6.1.1 Set接口 6.1.2 Set映射 6.2 List映射 6.2.1 List接口 6.2.2 List映射 6.3 Bag映射 6.4 IdBag映射 6.5 Map映射 6.5.1 Map接口 6.5.2 HashMap 6.5.3 LinkedHashMap 6.5.4 TreeMap 6.5.5 Map映射 6.6 排序集合映射 6.6.1 利用或標簽的sort屬性排序 6.6.2 利用SQL的order by子句排序第7章 組件映射 7.1 組件(Component)映射的單向關(guān)聯(lián) 7.1.1 數(shù)據(jù)準備 7.1.2 編寫Profile.java文件 7.1.3 編寫User.java文件 7.1.4 編寫User.hbm.xml文件 7.1.5 編寫HibernateTest.java文件 7.1.6 程序運行輸出 7.2 組件映射的雙向關(guān)聯(lián) 7.3 組件集合映射 7.3.1 數(shù)據(jù)準備 7.3.2 編寫Image.java文件 7.3.3 編寫Product.java文件 7.3.4 編寫Product.hbm.xml文件 7.3.5 編寫HibernateTest.java文件 7.3.6 組件集合映射的雙向關(guān)聯(lián)第8章 映射多對一及一對多關(guān)聯(lián)關(guān)系 8.1 多對一單向關(guān)聯(lián) 8.1.1 數(shù)據(jù)準備 8.1.2 編寫Category.java與Category.hbm.xml 文件 8.1.3 編寫Product.java與Product.hbm.xml文件 8.1.4 編寫HibernateTest.java文件 8.1.5 outer-join屬性 8.2 一對多單向關(guān)聯(lián) 8.2.1 數(shù)據(jù)準備 8.2.2 編寫Product.java與Product.hbm.xml文件 8.2.3 編寫Category.java與Category.hbm.xml文件 8.2.4 編寫HibernateTest.java文件 8.3 級聯(lián) 8.4 一對多雙向關(guān)聯(lián) 8.4.1 數(shù)據(jù)準備 8.4.2 編寫Product.java與Product.hbm.xml文件 8.4.3 編寫Category.java與Category.hbm.xml文件 8.4.4 編寫HibernateTest.java文件 8.5 控制反轉(zhuǎn)(Inverse)第9章 映射一對一關(guān)聯(lián)關(guān)系 9.1 共享主鍵關(guān)聯(lián) 9.1.1 數(shù)據(jù)準備 9.1.2 編寫User.java與User.hbm.xml文件 9.1.3 編寫Profile.java與Profile.hbm.xml文件 9.1.4 編寫HibernateTest.java文件 9.2 唯一外鍵關(guān)聯(lián) 9.2.1 準備數(shù)據(jù) 9.2.2 編寫Profile.java與Profile.hbm.xml 文件 9.2.3 編寫User.java與User.hbm.xml文件 9.2.4 編寫HibernateTest.java 文件第10章 映射多對多關(guān)聯(lián)關(guān)系 10.1 多對多單向關(guān)聯(lián) 10.1.1 準備數(shù)據(jù) 10.1.2 編寫Product.java與Product.hbm.xml文件 10.1.3 編寫Order.java與Order.hbm.xml文件 10.1.4 Order與Product的類圖 10.1.5 編寫HibernateTest.java文件 10.2 多對多雙向關(guān)聯(lián) 10.2.1 準備數(shù)據(jù) 10.2.2 編寫Order.java與Order.hbm.xml 文件 10.2.3 編寫Product.java與Product.hbm.xml文件 10.2.4 Order與Product類的類圖 10.2.5 編寫HibernateTest.java文件 10.3 在多對多關(guān)聯(lián)中使用組件集合映射 10.3.1 準備數(shù)據(jù) 10.3.2 編寫Product.java與Product.hbm.xml 文件 10.3.3 編寫OrderItem.java文件 10.3.4 編寫Order.java與Order.hbm.xml文件 10.3.5 Product、Order與OrderItem的類圖 10.3.6 編寫HibernateTest.java文件 10.4 分拆多對多關(guān)聯(lián)為兩個一對多關(guān)聯(lián) 10.4.1 數(shù)據(jù)準備 10.4.2 編寫Product.java與Product.hbm.xml文件 10.4.3 編寫OrderItem.java與OrderItem.hbm.xml文件 10.4.4 編寫Order.java與Order.hbm.xml文件 10.4.5 編寫HibernateTest.java文件第11章 Criteria查詢 11.1 準備數(shù)據(jù) 11.1.1 創(chuàng)建guestbook、product和category表 11.1.2 在guestbook、product和category表中添加演示數(shù)據(jù) 11.1.3 實例文件 11.2 Criteria的基本使用 11.2.1 Criteria接口的主要方法 11.2.2 Criterion接口 11.2.3 排序查詢結(jié)果 11.2.4 分頁顯示數(shù)據(jù) 11.2.5 查詢一條記錄 11.2.6 通過關(guān)聯(lián)對象建立查詢條件 11.2.7 Restrictions類 11.2.8 條件“或”方式組合查詢條件 11.2.9 使用原生SQL語句設(shè)置查詢條件 11.2.10 統(tǒng)計函數(shù)查詢 11.2.11 統(tǒng)計函數(shù)組合查詢條件 11.2.12 獲取多個統(tǒng)計函數(shù)的值 11.2.13 分組查詢 11.2.14 分組統(tǒng)計 11.2.15 為分組統(tǒng)計結(jié)果指定別名 11.2.16 投影查詢 11.2.17 使用Property類的forName()方法實現(xiàn)分組統(tǒng)計 11.3 使用DetachedCriteria對象實現(xiàn)離線查詢 11.4 根據(jù)示例對象查詢第12章 HQL與Native SQL查詢 12.1 準備數(shù)據(jù) 12.2 Query接口 12.2.1 list()方法 12.2.2 iterate()方法 12.2.3 選擇list()和iterate()方法 12.2.4 使用setMaxResults()和setFirstResult()方法實現(xiàn)分頁 12.2.5 使用uniqueResult()方法讀取唯一記錄 12.3 HQL基礎(chǔ) 12.3.1 查詢所有持久化對象 12.3.2 投影查詢 12.3.3 使用別名 12.3.4 使用distinct關(guān)鍵字 12.3.5 限定查詢的條件 12.3.6 數(shù)據(jù)排序 12.3.7 使用參數(shù)占位符 12.3.8 使用統(tǒng)計函數(shù) 12.3.9 使用函數(shù) 12.4 HQL的批量更新 12.5 HQL中的連接查詢 12.5.1 使用交叉連接 12.5.2 使用內(nèi)連接 12.5.3 使用左外連接 12.5.4 使用右外連接 12.5.5 迫切內(nèi)連接 12.5.6 迫切左外連接 12.6 命名的HQL 12.7 使用SQL 12.7.1 SQL查詢 12.7.2 SQL更新記錄 12.7.3 SQL刪除記錄 12.7.4 命名的SQL 12.7.5 調(diào)用存儲過程 12.8 使用SQLQuery對象實現(xiàn)動態(tài)表映射 12.8.1 準備數(shù)據(jù) 12.8.2 編寫LogInfo.java文件 12.8.3 編寫LogInfo.hbm.xml文件 12.8.4 編寫HibernateTest.java文件 12.9 在Hibernate中調(diào)用數(shù)據(jù)庫存儲過程 12.9.1 準備數(shù)據(jù) 12.9.2 調(diào)用數(shù)據(jù)庫存儲過程 12.10 在Hibernate中使用JDBC 12.10.1 準備數(shù)據(jù) 12.10.2 調(diào)用數(shù)據(jù)庫存儲過程第13章 Hibernate的事務(wù)管理 13.1 數(shù)據(jù)庫事務(wù) 13.1.1 事務(wù)的特性 13.1.2 編程式與聲明式事務(wù) 13.1.3 在JDBC中使用事務(wù) 13.1.4 并發(fā)訪問數(shù)據(jù)可能引發(fā)的問題 13.1.5 事務(wù)隔離級別 13.2 Hibernate中的事務(wù) 13.2.1 在Hibernate中事務(wù)管理API 13.3 鎖 13.4 Hibernate中的鎖定模式 13.5 悲觀鎖 13.5.1 使用Query對象的setLockMode()方法設(shè)置悲觀鎖 13.5.2 使用Sessoin對象的lock()方法設(shè)置悲觀鎖 13.6 樂觀鎖 13.6.1 以版本號方式實現(xiàn)樂觀鎖 13.6.2 時間戳實現(xiàn)樂觀鎖第14章 繼承映射 14.1 繼承關(guān)系層次一個表 14.1.1 創(chuàng)建delivery表 14.1.2 編寫Delivery.java文件 14.1.3 編寫PostDelivery.java文件 14.1.4 編寫ExpressDelivery.java文件 14.1.5 編寫Delivery.hbm.xml文件 14.1.6 編寫HibernateTest.java文件 14.1.7 繼承關(guān)系層次一個表的優(yōu)缺點 14.2 每個具體類一個表 14.2.1 創(chuàng)建post_delivery和express_delivery表 14.2.2 編寫Delivery.java文件 14.2.3 編寫PostDelivery.java文件 14.2.4 編寫ExpressDelivery.java文件 14.2.5 編寫Delivery.hbm.xml文件 14.2.6 編寫HibernateTest.java文件 14.2.7 每個具體類一個表的優(yōu)缺點 14.3 每個子類一個表 14.3.1 創(chuàng)建delivery、post_delivery和express_delivery表 14.3.2 編寫Delivery.java文件 14.3.3 編寫PostDelivery.java文件 14.3.4 編寫ExpressDelivery.java 14.3.5 編寫Delivery.hbm.xml文件 14.3.6 編寫HibernateTest.java文件 14.4 每個子類一個表的優(yōu)缺點 14.5 小結(jié)第15章 Hibernate過濾器 15.1 概念 15.2 配置 15.2.1 使用標簽定義過濾器 15.2.2 使用標簽聲明使用過濾器 15.3 調(diào)用Hibernate過濾器 15.3.1 Session接口中與Filter對象有關(guān)的方法 15.3.2 調(diào)用Hibernate過濾器的示例 15.4 小結(jié)第16章 數(shù)據(jù)攔截與事件監(jiān)聽 16.1 攔截器 16.1.1 Interceptor接口的方法 16.1.2 使用攔截器實現(xiàn)審計日志 16.2 Hibernate的事件監(jiān)聽 16.2.1 應(yīng)用Hibernate事件監(jiān)聽器 16.2.2 使用監(jiān)聽器實現(xiàn)審計日志 16.2.3 事件監(jiān)聽與攔截器的比較第17章 Hibernate的緩存 17.1 持久層緩存的概念 17.1.1 持久層緩存的級別 17.2 Hibernate的一級緩存 17.2.1 一級緩存的實現(xiàn)原理 17.2.2 管理一級緩存 17.3 Hibernate的二級緩存 17.3.1 二級緩存的策略 17.3.2 應(yīng)用EHCache作為二級緩存 17.3.3 緩存集合對象 17.3.4 管理二級緩存 17.4 查詢緩存 17.4.1 查詢緩存的實現(xiàn)原理 17.4.2 使用查詢緩存 17.5 應(yīng)用memcached作為二級緩存 17.5.1 memcached 17.5.2 Hibernate-memcached 17.5.3 在Hibernate應(yīng)用中使用memcached 17.6 緩存對get()、load()、list()和iterator()方法的影響 17.7 小結(jié)第18章 Hibernate的性能優(yōu)化 18.1 使用dynamic-insert與dynamic-update 18.1.1 應(yīng)用標簽的dynamic-insert與dynamic-update屬性 18.2 延遲加載 18.2.1 持久化對象的延遲加載 18.2.2 集合對象的延遲加載 18.2.3 屬性的延遲加載 18.2.4 解決org.hibernate.LazyInitializationException違例問題 18.3 集合對象的抓取策略 18.3.1 查詢抓取 18.3.2 子查詢抓取 18.3.3 連接查詢抓取 18.3.4 批量抓取 18.3.5 Hibernate的“1+N”問題第19章 Hibernate Annotations組件 19.1 下載Hibernate Annotations組件 19.2 使用Annotations實現(xiàn)一對多雙向關(guān)聯(lián)映射 19.2.1 準備數(shù)據(jù) 19.2.2 在當前項目中添加Hibernate Annotations類庫 19.2.3 編寫Product.java和Category.java文件 19.2.4 編寫hibernate.cfg.xml文件 19.2.5 編寫HibernateTest.java文件 19.3 Hibernate Annotations組件核心注解 19.3.1 注解屬性或者方法 19.3.2 Hibernate Annotations組件核心注解 19.3.3 注解VS映射文件 19.4 Hibernate EntityManager 19.4.1 Java Persistence API 19.4.2 下載Hibernate EntityManager 19.4.3 應(yīng)用Hibernate EntityManager第20章 Hibernate Search組件 20.1 搜索引擎 20.1.1 全文檢索引擎 20.1.2 目錄索引搜索引擎 20.1.3 元搜索引擎 20.2 Lucene 20.3 Hibernate Search組件 20.3.1 Hibernate Search組件的特點 20.3.2 使用Hibernate Search組件 20.4 使用Luke工具查看索引數(shù)據(jù) 20.5 中文分詞 20.5.1 概念 20.5.2 中文分詞的基本機制 20.5.3 Hibernate Search使用第三方中文分詞組件第21章 Hibernate與Struts 2 21.1 Struts 2框架 21.1.1 Struts 2框架的特點 21.1.2 下載Struts 2 21.2 編寫第1個Struts 2程序 21.2.1 新建Web項目添加Struts類庫 21.2.2 修改web.xml文件配置Struts2的過濾器 21.2.3 編寫login.jsp文件 21.2.4 編寫LoginAction.java文件 21.2.5 編寫loginResult.jsp文件 21.2.6 編寫struts.xml文件 21.2.7 項目部署后的運行效果 21.3 Struts 2的內(nèi)部結(jié)構(gòu) 21.3.1 Struts 2的處理流程 21.4 網(wǎng)絡(luò)留言本V2.2 21.4.1 新建guestbookv2.2項目 21.4.2 所需文件列表 21.4.3 編寫GuestbookAction.java文件 21.4.4 編寫AdminAction.java文件 21.4.5 編寫struts.xml文件 21.4.6 修改web.xml文件 21.4.7 修改addMessage.jsp文件 21.4.8 修改login.jsp文件 21.4.9 部署運行項目第22章 Hibernate與Spring Framework 22.1 Spring簡介 22.1.1 Spring的子模塊 22.1.2 下載Spring 22.2 IoC容器 22.2.1 容器的概念 22.2.2 IoC設(shè)計模式 22.2.3 Spring的IoC容器 22.2.4 使用Spring IoC容器示例 22.3 Spring AOP 22.3.1 OOP的不足 22.3.2 AOP技術(shù) 22.3.3 Spring AOP 22.3.4 AOP的專有名詞 22.3.5 Spring AOP中的常用通知類型 22.3.6 使用AspectJ 5的注解實現(xiàn)Spring AOP 22.3.7 AspectJ的切入點表達式語法 22.4 Spring對Hibernate的支持 22.4.1 簡化獲取SessionFactory對象 22.4.2 HibernateTemplate類 22.4.3 HibernateDaoSupport類 22.4.4 Spring對事務(wù)的支持 22.4.5 聲明式事務(wù)的參數(shù)定義 22.4.6 使用Spring注解管理事務(wù)的示例 22.5 Guestbook v2.3版 22.5.1 新建Guestbookv2.3項目 22.5.2 文件列表 22.5.3 修改web.xml文件 22.5.4 修改DAO實現(xiàn)類 22.5.5 修改Servlet文件 22.5.6 編寫ApplicationContext.xml 22.5.7 項目運行輸出 22.6 小結(jié)第23章 KH網(wǎng)絡(luò)博客系統(tǒng) 23.1 系統(tǒng)需求分析 23.1.1 確定用戶 23.1.2 系統(tǒng)功能 23.2 系統(tǒng)設(shè)計 23.2.1 系統(tǒng)結(jié)構(gòu)設(shè)計 23.2.2 數(shù)據(jù)庫設(shè)計 23.2.3 設(shè)計域模型 23.2.4 持久層設(shè)計 23.2.5 業(yè)務(wù)邏輯層設(shè)計 23.2.6 表現(xiàn)層的設(shè)計 23.2.7 Action類設(shè)計 23.2.8 權(quán)限控制設(shè)計 23.2.9 分頁設(shè)計 23.2.10 數(shù)據(jù)校驗設(shè)計 23.2.11 訂閱博客功能設(shè)計 23.2.12 設(shè)置開發(fā)環(huán)境 23.2.13 Java包名與組織結(jié)構(gòu)設(shè)計 23.3 編碼實現(xiàn) 23.3.1 創(chuàng)建項目 23.3.2 域模型代碼 23.3.3 持久層的相關(guān)代碼 23.3.4 業(yè)務(wù)邏輯層的相關(guān)代碼 23.3.5 表現(xiàn)層的相關(guān)代碼 23.4 部署運行KH網(wǎng)絡(luò)博客系統(tǒng) 23.5 小結(jié)
章節(jié)摘錄
第1章 Hibernate起源 1.1 ORM框架 面向?qū)ο蠹夹g(shù)在最近10多年中得到了極大的發(fā)展,現(xiàn)在大多數(shù)企業(yè)系統(tǒng)都是采用面向?qū)ο蠹夹g(shù)進行開發(fā)的,而這些企業(yè)系統(tǒng)均使用關(guān)系型數(shù)據(jù)庫永久保存數(shù)據(jù)。在企業(yè)應(yīng)用系統(tǒng)中,涉及的業(yè)務(wù)實體會使用對象和關(guān)系數(shù)據(jù)這兩種表現(xiàn)形式,業(yè)務(wù)實體在內(nèi)存中表現(xiàn)為對象,而在數(shù)據(jù)庫中表現(xiàn)為關(guān)系數(shù)據(jù)。內(nèi)存中的對象之間會存關(guān)聯(lián)、繼承和多態(tài)等面向?qū)ο蟮奶匦裕鴶?shù)據(jù)庫中的數(shù)據(jù)之間則無法直接表達這些特性。因而需要一種神奇的技術(shù),可以實現(xiàn)對象與關(guān)系數(shù)據(jù)庫中數(shù)據(jù)之間的自由轉(zhuǎn)換,而對象/關(guān)系映射(Object/Relational Mappin9,ORM)框架的功能正是如此?! ≡陂_發(fā)企業(yè)應(yīng)用系統(tǒng)中使用ORM框架可以避免直接使用SQL語句對關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)進行操作,而是借用0RM框架把數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)換為對象,通過操作這些對象實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的CRUD(Create、Retrieve、Update和Delete)的操作?! ∈褂肙RM框架不僅可以減少代碼編寫的工作量,并且提高了產(chǎn)品質(zhì)量。因為采用傳統(tǒng)的JDBC編程來訪問數(shù)據(jù)庫,需要在Java程序代碼中嵌入.大量瑣碎且價值不高的代碼,而使用ORM框架后這些代碼的數(shù)量大大減少。同時一個成熟的ORM框架產(chǎn)品不僅把對象與數(shù)據(jù)庫中的數(shù)據(jù)進行映射,解決關(guān)系數(shù)據(jù)與對象的不匹配問題,還把面向?qū)ο笏枷胴瀼卦谝粋€系統(tǒng)的分析、設(shè)計、編程及測試等方面,并且為了提高訪問數(shù)據(jù)庫的性能,降低訪問數(shù)據(jù)庫的頻率,引入了多線程、緩存及事務(wù)管理等很多細節(jié)技術(shù)?! ≡诂F(xiàn)階段在Java領(lǐng)域中已經(jīng)出現(xiàn)了許多優(yōu)秀的ORM框架,因此開發(fā)人員不必自己實現(xiàn)該框架。Java領(lǐng)域中的部分0RM框架如表1-1所示。
編輯推薦
從開發(fā)到培訓(xùn):深知初學者是怎樣起步的,《Hibernate開發(fā)與實戰(zhàn)》對內(nèi)容進行了精心布局,完全符合初學者的學習路徑。 從書本到實踐:《Hibernate開發(fā)與實戰(zhàn)》在保證知識體系完備、脈絡(luò)清晰、論述精準深刻的同時,尤其注重讀者的實際動手能力。 從文字到視頻:《Hibernate開發(fā)與實戰(zhàn)》精心配備了融入作者多年高端Java職業(yè)教育的心血的教學視頻,使得初學者輕松學到價值不菲的專業(yè)培訓(xùn)課上學到的知識。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
Hibernate開發(fā)與實戰(zhàn) PDF格式下載