出版時間:2009-9 出版社:電子工業(yè)出版社 作者:劉偉,張利國 編著 頁數(shù):441
Tag標簽:無
內容概要
本書采用理論闡述、實例項目、視頻講解相結合的方式,全面講解了Hibernate Core、Hibernate Annotations、Hibernate Search、Hibernate EntityManager等內容?! ∪珪?3章。第1~18章,講解Hibernate Core的內容。第19章講解Hibernate Annotations內容。第19章講解Hibernate Anonations和Hibernate EntityManager的內容。第20章講解Hibernate Search的內容。第21章講解Hibernate與Struts 2框架如何進行整合開發(fā)。第22章講解Hibernate與Spring框架如何進行整合開發(fā)。第23章,則詳細講解如何組合運用Hibernate、Struts 2和Spring框架,開發(fā)一個完整的網(wǎng)絡博客系統(tǒng)。 全書結構嚴謹,層次清晰,語言生動,論述精準而深刻,程序實例豐富實用。本書需要讀者具有Java編程語言和HTML的基礎。本書還提供了大量的實例代碼,讀者可以自由使用,這些代碼非常實用,適合解決Hibernate開發(fā)中的實際問題。本書不僅適合用作普通高校或職業(yè)培訓教材,更是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 在應用程序中設置新的屬性值 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 設置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 程序運行結果 2.7.7 使用HQL編輯器調試HQL語句 2.8 Hibernate應用的開發(fā)方式 2.8.1 自底向上,從數(shù)據(jù)庫表到持久化類 2.8.2 自上向下,持久化類到數(shù)據(jù)庫表 2.8.3 從中間出發(fā),向上與向下發(fā)展 2.9 設置Hibernate使用連接池 2.9.1 設置使用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)絡留言本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的內容 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 映射復合主鍵 3.4.1 數(shù)據(jù)準備 3.4.2 使用屬性映射復合主鍵 3.4.3 使用主鍵類映射復合主鍵 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的設計與實現(xiàn) 5.2.1 編寫泛型DAO接口 5.2.2 編寫泛型DAO的實現(xiàn)類 5.2.3 使用GenericDao接口 5.2.4 使用GenericDaoHibernate類 5.3 網(wǎng)絡留言本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 程序運行結果第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)映射的單向關聯(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 組件映射的雙向關聯(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 組件集合映射的雙向關聯(lián)第8章 映射多對一及一對多關聯(lián)關系 8.1 多對一單向關聯(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 一對多單向關聯(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 一對多雙向關聯(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 控制反轉(Inverse)第9章 映射一對一關聯(lián)關系 9.1 共享主鍵關聯(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 唯一外鍵關聯(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章 映射多對多關聯(lián)關系 10.1 多對多單向關聯(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 多對多雙向關聯(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 在多對多關聯(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 分拆多對多關聯(liá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 排序查詢結果 11.2.4 分頁顯示數(shù)據(jù) 11.2.5 查詢一條記錄 11.2.6 通過關聯(lián)對象建立查詢條件 11.2.7 Restrictions類 11.2.8 條件“或”方式組合查詢條件 11.2.9 使用原生SQL語句設置查詢條件 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)計結果指定別名 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基礎 12.3.1 查詢所有持久化對象 12.3.2 投影查詢 12.3.3 使用別名 12.3.4 使用distinct關鍵字 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 使用內連接 12.5.3 使用左外連接 12.5.4 使用右外連接 12.5.5 迫切內連接 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 調用存儲過程 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中調用數(shù)據(jù)庫存儲過程 12.9.1 準備數(shù)據(jù) 12.9.2 調用數(shù)據(jù)庫存儲過程 12.10 在Hibernate中使用JDBC 12.10.1 準備數(shù)據(jù) 12.10.2 調用數(shù)據(jù)庫存儲過程第13章 Hibernate的事務管理 13.1 數(shù)據(jù)庫事務 13.1.1 事務的特性 13.1.2 編程式與聲明式事務 13.1.3 在JDBC中使用事務 13.1.4 并發(fā)訪問數(shù)據(jù)可能引發(fā)的問題 13.1.5 事務隔離級別 13.2 Hibernate中的事務 13.2.1 在Hibernate中事務管理API 13.3 鎖 13.4 Hibernate中的鎖定模式 13.5 悲觀鎖 13.5.1 使用Query對象的setLockMode()方法設置悲觀鎖 13.5.2 使用Sessoin對象的lock()方法設置悲觀鎖 13.6 樂觀鎖 13.6.1 以版本號方式實現(xiàn)樂觀鎖 13.6.2 時間戳實現(xiàn)樂觀鎖第14章 繼承映射 14.1 繼承關系層次一個表 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 繼承關系層次一個表的優(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 小結第15章 Hibernate過濾器 15.1 概念 15.2 配置 15.2.1 使用標簽定義過濾器 15.2.2 使用標簽聲明使用過濾器 15.3 調用Hibernate過濾器 15.3.1 Session接口中與Filter對象有關的方法 15.3.2 調用Hibernate過濾器的示例 15.4 小結第16章 數(shù)據(jù)攔截與事件監(jiān)聽 16.1 攔截器 16.1.1 Interceptor接口的方法 16.1.2 使用攔截器實現(xiàn)審計日志 16.2 Hibernate的事件監(jiān)聽 16.2.1 應用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 應用EHCache作為二級緩存 17.3.3 緩存集合對象 17.3.4 管理二級緩存 17.4 查詢緩存 17.4.1 查詢緩存的實現(xiàn)原理 17.4.2 使用查詢緩存 17.5 應用memcached作為二級緩存 17.5.1 memcached 17.5.2 Hibernate-memcached 17.5.3 在Hibernate應用中使用memcached 17.6 緩存對get()、load()、list()和iterator()方法的影響 17.7 小結第18章 Hibernate的性能優(yōu)化 18.1 使用dynamic-insert與dynamic-update 18.1.1 應用標簽的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)一對多雙向關聯(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 應用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的內部結構 21.3.1 Struts 2的處理流程 21.4 網(wǎng)絡留言本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設計模式 22.2.3 Spring的IoC容器 22.2.4 使用Spring IoC容器示例 22.3 Spring AOP 22.3.1 OOP的不足 22.3.2 AOP技術 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對事務的支持 22.4.5 聲明式事務的參數(shù)定義 22.4.6 使用Spring注解管理事務的示例 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 小結第23章 KH網(wǎng)絡博客系統(tǒng) 23.1 系統(tǒng)需求分析 23.1.1 確定用戶 23.1.2 系統(tǒng)功能 23.2 系統(tǒng)設計 23.2.1 系統(tǒng)結構設計 23.2.2 數(shù)據(jù)庫設計 23.2.3 設計域模型 23.2.4 持久層設計 23.2.5 業(yè)務邏輯層設計 23.2.6 表現(xiàn)層的設計 23.2.7 Action類設計 23.2.8 權限控制設計 23.2.9 分頁設計 23.2.10 數(shù)據(jù)校驗設計 23.2.11 訂閱博客功能設計 23.2.12 設置開發(fā)環(huán)境 23.2.13 Java包名與組織結構設計 23.3 編碼實現(xiàn) 23.3.1 創(chuàng)建項目 23.3.2 域模型代碼 23.3.3 持久層的相關代碼 23.3.4 業(yè)務邏輯層的相關代碼 23.3.5 表現(xiàn)層的相關代碼 23.4 部署運行KH網(wǎng)絡博客系統(tǒng) 23.5 小結
章節(jié)摘錄
第1章 Hibernate起源 1.1 ORM框架 面向對象技術在最近10多年中得到了極大的發(fā)展,現(xiàn)在大多數(shù)企業(yè)系統(tǒng)都是采用面向對象技術進行開發(fā)的,而這些企業(yè)系統(tǒng)均使用關系型數(shù)據(jù)庫永久保存數(shù)據(jù)。在企業(yè)應用系統(tǒng)中,涉及的業(yè)務實體會使用對象和關系數(shù)據(jù)這兩種表現(xiàn)形式,業(yè)務實體在內存中表現(xiàn)為對象,而在數(shù)據(jù)庫中表現(xiàn)為關系數(shù)據(jù)。內存中的對象之間會存關聯(lián)、繼承和多態(tài)等面向對象的特性,而數(shù)據(jù)庫中的數(shù)據(jù)之間則無法直接表達這些特性。因而需要一種神奇的技術,可以實現(xiàn)對象與關系數(shù)據(jù)庫中數(shù)據(jù)之間的自由轉換,而對象/關系映射(Object/Relational Mappin9,ORM)框架的功能正是如此?! ≡陂_發(fā)企業(yè)應用系統(tǒng)中使用ORM框架可以避免直接使用SQL語句對關系型數(shù)據(jù)庫中的數(shù)據(jù)進行操作,而是借用0RM框架把數(shù)據(jù)庫中的數(shù)據(jù)轉換為對象,通過操作這些對象實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的CRUD(Create、Retrieve、Update和Delete)的操作?! ∈褂肙RM框架不僅可以減少代碼編寫的工作量,并且提高了產(chǎn)品質量。因為采用傳統(tǒng)的JDBC編程來訪問數(shù)據(jù)庫,需要在Java程序代碼中嵌入.大量瑣碎且價值不高的代碼,而使用ORM框架后這些代碼的數(shù)量大大減少。同時一個成熟的ORM框架產(chǎn)品不僅把對象與數(shù)據(jù)庫中的數(shù)據(jù)進行映射,解決關系數(shù)據(jù)與對象的不匹配問題,還把面向對象思想貫徹在一個系統(tǒng)的分析、設計、編程及測試等方面,并且為了提高訪問數(shù)據(jù)庫的性能,降低訪問數(shù)據(jù)庫的頻率,引入了多線程、緩存及事務管理等很多細節(jié)技術?! ≡诂F(xiàn)階段在Java領域中已經(jīng)出現(xiàn)了許多優(yōu)秀的ORM框架,因此開發(fā)人員不必自己實現(xiàn)該框架。Java領域中的部分0RM框架如表1-1所示。
編輯推薦
從開發(fā)到培訓:深知初學者是怎樣起步的,《Hibernate開發(fā)與實戰(zhàn)》對內容進行了精心布局,完全符合初學者的學習路徑。 從書本到實踐:《Hibernate開發(fā)與實戰(zhàn)》在保證知識體系完備、脈絡清晰、論述精準深刻的同時,尤其注重讀者的實際動手能力?! 奈淖值揭曨l:《Hibernate開發(fā)與實戰(zhàn)》精心配備了融入作者多年高端Java職業(yè)教育的心血的教學視頻,使得初學者輕松學到價值不菲的專業(yè)培訓課上學到的知識。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
Hibernate開發(fā)與實戰(zhàn) PDF格式下載