緩存及注解授課章_第1頁
緩存及注解授課章_第2頁
緩存及注解授課章_第3頁
緩存及注解授課章_第4頁
緩存及注解授課章_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第七章緩存及注解第三單元第1頁/共25頁本章相關學習資源《使用緩存提高查詢性能》專題《使用注解簡化映射配置》專題《升級新聞管理系統》相關專題《使用Hibernate升級新聞管理系統》第7章《緩存及注解》第2頁/共25頁學習平臺“Hibernate實現數據持久化”課程學生用書預習檢查簡述緩存的作用簡述Hibernate的緩存分類列舉完成實體類常用配置的注解第3頁/共25頁提問本章任務任務1:使用一級緩存查詢特定房屋信息任務2:使用二級緩存和查詢緩存任務3:使用注解配置項目任務4:升級新聞管理系統第4頁/共25頁本章目標第5頁/共25頁使用一級緩存提高查詢性能使用二級緩存提高查詢性能使用查詢緩存調高查詢性能升級新聞管理系統點重點難使用注解完成項目配置點重串講:緩存緩存介于應用程序和永久性數據存儲源之間使用緩存,可以降低應用程序直接讀寫永久性數據存儲源的頻率,提高運行性能第6頁/共25頁串講:Hibernate緩存Hibernate緩存分類一級緩存(Session緩存)二級緩存(SessionFactory的外置緩存)查詢緩存緩存范圍事務范圍進程范圍集群范圍第7頁/共25頁提問講解:一級緩存一級緩存(Session緩存)減少訪問數據庫的頻率保證數據庫中記錄與緩存中對象同步第8頁/共25頁//獲得ID為1的學生信息Studentstudent=(Student)session.load(Student.class,1);System.out.println(student.getSname()+"-"+student.getSex());//在同一個Session范圍內,再次獲得ID為1的學生信息Studentstudent2=(Student)session.load(Student.class,1);System.out.println(student2.getSname()+"-"+student2.getSex());selectstudent0_.SIDasSID1_0_,student0_.SNAMEasSNAME1_0_,student0_.SEXasSEX1_0_fromSTUDENTstudent0_wherestudent0_.SID=?兩次查詢Student對象,控制臺只輸出一句SQL,說明Session緩存降低了訪問數據庫的頻率

演示示例:使用一級緩存上機練習需求說明租房系統中,查詢ID為1的房屋基本信息分析:在同一個Session范圍內兩次查詢ID為1的房屋基本信息在不同Session范圍內兩次查詢ID為1的房屋基本信息控制臺輸出SQL語句,觀察兩者區別完成時間:15分鐘共性問題集中講解第9頁/共25頁練習串講:二級緩存二級緩存(SessionFactory的外置緩存)可以被所有的Session共享是可配置的插件第10頁/共25頁緩存插件緩存實現類是否支持查詢緩存類型EHCacheorg.hibernate.cache.EhCacheProvider是進程范圍的緩存;內存或硬盤OSCacheorg.hibernate.cache.OSCacheProvider是進程范圍的緩存;內存或硬盤SwarmCacheorg.hibernate.cache.SwarmCacheProvider否集群范圍的緩存JBossCacheorg.hibernate.cache.TreeCacheProvider是集群范圍的緩存配置步驟

選擇合適的緩存插件,配置其自帶的配置文件串講:二級緩存第11頁/共25頁

演示示例:配置EHCache二級緩存選擇需要使用二級緩存的持久化類,設置它的二級緩存的并發訪問策略12串講:二級緩存應用場景第12頁/共25頁適用場景不適用場景很少被修改的數據經常被修改的數據不是很重要的數據,允許出現偶爾并發問題財務數據,絕對不允許出現并發問題不會被并發訪問的數據與其他應用共享的數據應用參考的常量數據串講:查詢緩存Hibernate的二級緩存策略,是針對于ID查詢的緩存策略,對于條件查詢則毫無作用第13頁/共25頁為此,Hibernate提供了針對條件查詢的查詢緩存提問串講:查詢緩存配置步驟第14頁/共25頁

演示示例:配置查詢緩存

開啟查詢緩存

hibernate.cache.use_query_cache1在程序中手動啟用查詢緩存query.setCacheable(true);2上機練習需求說明租房系統中,分別使用二級緩存以及查詢緩存查詢ID為1的房屋基本信息完成時間:20分鐘共性問題集中講解第15頁/共25頁練習小結第16頁/共25頁//獲得ID為1的學生信息Studentstudent=(Student)session.load(Student.class,1);System.out.println(student.getSname()+"-"+student.getSex());//在同一個Session范圍內,再次獲得ID為1的學生信息Studentstudent2=(Student)session.load(Student.class,1);System.out.println(student2.getSname()+"-"+student2.getSex());S提問簡述Hibernate的緩存分類以下為在同一個Session范圍內查詢ID為1的學生信息的代碼,解釋控制臺輸出一條SQL語句的原因使用AnnotationConfiguration建立會話工廠串講:注解替換復雜的hbm.xml文件簡化Hibernate程序開發使用注解步驟第17頁/共25頁1添加Annotationsjar包2使用注解配置持久化類以及對象關聯關系34在Hibernate配置文件(hibernate.cfg.xml)中聲明持久化類講解:注解配置實體類第18頁/共25頁注解含義和作用@Entity將一個類聲明為一個實體bean(即一個持久化POJO類)@Id聲明了該實體bean的標識屬性(相當于數據表的主鍵)@GeneratedValue定義標識符的生成策略@Table為實體bean映射指定表(table)、目錄(catalog)和schema的名字。默認值:實體bean的類名,不帶包名@UniqueConstraint定義表的唯一約束@Lob表示屬性將被持久化為Blob或者Clob類型@Column將屬性映射到列@Transient將忽略這些字段和屬性,不用持久化到數據庫@NamedQuery配置命名查詢講解:注解配置對象關聯關系第19頁/共25頁注解含義和作用@OneToOne建立實體bean之間的一對一關聯@OneToMany建立實體bean之間的一對多關聯@ManyToOne建立實體bean之間的多對一關聯@ManyToMany建立實體bean之間的多對多關聯

演示示例:使用注解配置項目上機練習需求說明租房系統中,使用注解配置項目,實現如下功能:查詢某個區的所有街道查詢特定的街道信息分析:使用注解配置實體類以及對象關聯關系使用注解配置命名查詢完成時間:20分鐘共性問題集中講解第20頁/共25頁練習修改/刪除新聞信息串講:升級新聞管理系統第21頁/共25頁參考功能分頁查詢新聞信息查詢新聞信息詳情發布新聞信息答疑時間同學們請就以下方面的問題請教老師項目答疑(教員備課時自行填寫)第22頁/共25頁總結Hibernate一級緩存有什么作用?Hibernate二級緩存在哪些場景下適用?使用Hibernate注解的步驟有哪些?什么注解可以定義標識符的生成策略?第23頁/共25頁提

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論