課程內容:Configuration類、SessionFactory接口 、Session接口 、Transaction接口、Query等接口、熟練使用Hibernate的各個接口、使用Hiberntae的HQL語言進行數據庫訪問。
緩存是位于應用程序與物理數據源之間,用于臨時存放復制數據的內存區域,目的是為了減少應用程序對物理數據源訪問的次數,從而提高應用程序的運行性能.Hibernate在查詢數據時,首先到緩存中去查找,如果找到就直接使用,找不到的時候就會從物理數據源中檢索,所以,把頻繁使用的數據加載到緩存區后,就可以大大減少應用程序對物理數據源的訪問,使得程序的運行性能明顯的提升.
課程內容:Hibernate原理模擬 - 什么是O/R Mapping以及為什么要有O/R Mapping。常見的0/R框架(了解)。hibernate基礎配置(重點)。ID生成策略(重點 AUTO)。Hibernate核心開發接口介紹(重點)。對象的三種狀態(了解)。關系映射(重點)。Hibernate査詢(HQL)。在Struts基礎上繼續完善BBS200。性能優化(重點),補充話題。
JPA&Hibernate注解說明文檔。
hibernate二級緩存是由SessionFactory管理,所以又叫SessionFactory級緩存,它是通過不同的類庫來實現的,比如ehcache、oscache等。和一級緩存一樣,二級緩存也是用來緩存實體對象的,對普通屬性不緩存。
復合查詢主要是處理,具有關聯關系的兩個實體怎樣進行關聯查詢,比如User實體對象與Addres實體對象具有復合查詢主要是處理,具有關聯關系的兩個實體怎樣進行關聯查詢,比如User實體對象與Addres實體對象具有一對多的關聯關系一對多的關聯關系
這里介紹Hibernate Annotations,HibernateUtil.java 也就是 Hibernate文檔中推薦的工具類,Person.java 一個持久化的類。
在Java EE5中, Entity Bean做為EJB規范中負責持久化的組件將逐漸成為一個歷史名詞了,作為J2EE 4規范中最為人所熟悉的Entity Bean在Java EE5中被推到重來,取而代之的是java開發的通用持久化規范Java Persistence API 1.0, 其實就是完全重新定義了的Entity Bean規范(目前在很多場合中,由于歷史原因我們仍然使用ejb3持久化來稱呼這個規范)。JPA作為java中負責關系數據持久化的組件已經完全獨立出來成為一個單獨的規范,而不再屬于Enterprise Java Bean的范疇(EJB更多的是指Stateless/Stateful session bean和Message Driven Bean)。 值得注意的是Java Persistence API并不是J2EE環境專用,而是在java中的通用API。意味著我們可以在任何需要訪問關系數據庫的地方使用JPA,甚至包括swing開發的桌面應用。JPA也不要求一定在J2EE容器中才能運行,而是任何有JVM的環境都可以運用。 這就使得我們可以很容易的把JPA作為一個持久化組件自由的和各種容器/框架(EJB3容器, Spring等等)組合。?
在當今的企業環境中,把面向對象的軟件和關系數據庫一起使用可能是相當麻煩、浪費時間的。NHibernate是一個面向.NET環境的對象/關系數據庫映射工具。對象/關系數據庫映射(object/relational mapping (ORM))這個術語表示一種技術,用來把對象模型表示的對象映射到基于SQL的關系模型數據結構中去。 NHibernate不僅僅管理.NET類到數據庫表的映射(包括.NET數據類型到SQL數據類型的映射),還提供數據查詢和獲取數據的方法,可以大幅度減少開發時人工使用SQL和ADO.NET處理數據的時間。 NHibernate的目標是對于開發者通常的數據持久化相關的編程任務,解放其中的95%。對于以數據為中心的程序來說,它們往往只在數據庫中使用存儲過程來實現商業邏輯,NHibernate可能不是最好的解決方案;對于那些在基于.NET的中間層應用中,它們實現面向對象的業務模型和商業邏輯的應用,NHibernate是最有用的。不管怎樣,NHibernate一定可以幫助你消除或者包裝那些針對特定廠商的SQL代碼,并且幫你把結果集從表格式的表示形式轉換到一系列的對象去。
1、對JDBC訪問數據庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重復性代碼。 2、Hibernate是一個基于JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作 3、hibernate使用Java反射機制,而不是字節碼增強程序來實現透明性。 4、hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關系數據庫,從一對一到多對多的各種復雜關系。
ORM(Object Relational Mapping)---是一種為了解決面向對象與關系型數據庫存在的互不匹配的現象的技術。簡單說:ORM是通過使用描述對象和數據庫之間映射的元數據,將Java程序中的對象自動持久化到關系數據中。本質上就是將數據從一種形式轉換到另外一種形式。
在.NET平臺下,關于數據持久層框架非常多,本文主要對如下幾種做簡要的介紹并推薦一些學習的資源:1.NHibernate、2.NBear、3.Castle ActiveRecord、4.iBATIS.NET、5.DAAB。
本文以詳盡的實例展示了hibernate3.x中調用存儲過程各步驟,從建立測試表、存儲過程的建立、工程的建立以及類的編寫和測試一步一步引導用戶學習hibernate3.x中調用存儲過程的方法.如果底層數據庫(eg.Oracle、mysql、sqlserver)等支持存儲過程,可通過存儲過程執行批量刪除、更新等操作。本文以實例說明在hibernate3.x中如何調用存儲過程。
第一講 - Hibernate概述、 第二講 - 對象-關系映射基礎、 第三講 - 復雜實體映射、 第四講 - 關聯映射、 第五講 - Hibernate查詢
Hibernate學習筆記
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了輕量級的對象封裝,提供HQL查詢語言,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。使用Hibernate,必須為配置映射文件—ClassMappingFile和ConfigurationFile,現在市場上提供了諸多Hibernate代碼生成工具,比如:XDoclet,以及Hibernate官方自帶的sechmaExport工具。然而它們都有如下的缺點:僅提供一些基本的輸入模版,用戶仍需要時間進行配置和修改;沒有提供自動的持久類以及InvokeBean的代碼生成;不支持圖形界面;不支持對HibernateTestCase的代碼生成。
最近在項目中使用Struts和Hibernate進行開發,有感于Criteria比較好用,在查詢方法設計上可以靈活的根據Criteria的特點來方便地進行查詢條件的組裝。現在對Hibernate的Criteria的用法進行總結:Hibernate設計了CriteriaSpecification作為Criteria的父接口,下面提供了Criteria和DetachedCriteria。Criteria和DetachedCriteria的主要區別在于創建的形式不一樣,Criteria是在線的,所以它是由HibernateSession進行創建的;
SQL Map API讓開發人員可以輕易地將JavaBean映射成PreparedStatement的輸入參數和ResultSet結果集。開發SQLMap的想法很簡單:提供一個簡潔的架構,能夠用20%的代碼實現80%JDBC的功能。