摘要:時(shí)間年月日星期二說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。返回對(duì)象不同返回持久化實(shí)體類(lèi)對(duì)象返回代理對(duì)象。與緩存的關(guān)系不同只緩存,但不使用緩存查詢(xún)緩存除外會(huì)使用緩存。
時(shí)間:2017年07月11日星期二
說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com
教學(xué)源碼:無(wú)
學(xué)習(xí)源碼:無(wú)
課程內(nèi)容
了解緩存 掌握Hibernate一級(jí)緩存的使用 掌握Hibernate二級(jí)緩存的使用 Hibernate一二級(jí)緩存的對(duì)比和總結(jié)
什么是緩存?
并不是指計(jì)算機(jī)的內(nèi)存或者CPU的一二級(jí)緩存 緩存是為了降低應(yīng)用程序?qū)ξ锢頂?shù)據(jù)源訪(fǎng)問(wèn)的頻次,從而提高應(yīng)用程序的運(yùn)行性能的一種策略
為什么使用緩存?
ORM框架訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的效率直接影響應(yīng)用程序的運(yùn)行速度, 提升和優(yōu)化ORM框架的執(zhí)行效率至關(guān)重要 Hibernate的緩存是提升和優(yōu)化Hibernate執(zhí)行效率的重要手段, 所以學(xué)會(huì)Hibernate緩存的使用和配置是優(yōu)化的關(guān)鍵
緩存的一般工作原理
第二章:不使用緩存的問(wèn)題 2-1 不使用緩存的問(wèn)題使用Hibernate查詢(xún)數(shù)據(jù)時(shí)
第二次查詢(xún)同一個(gè)對(duì)象時(shí),并沒(méi)有再次執(zhí)行數(shù)據(jù)庫(kù)查詢(xún) 在不同的session中多次查詢(xún)同一個(gè)對(duì)象時(shí),會(huì)執(zhí)行多次數(shù)據(jù)庫(kù)查詢(xún) 一級(jí)緩存中,持久化類(lèi)的每個(gè)實(shí)例都具有唯一的OID第三章:一級(jí)緩存介紹 3-1 一級(jí)緩存介紹
介紹Hibernate一級(jí)緩存
Hibernate一級(jí)緩存又稱(chēng)為“session緩存”、“會(huì)話(huà)級(jí)緩存” 通過(guò)Session從數(shù)據(jù)庫(kù)查詢(xún)實(shí)體時(shí)會(huì)把實(shí)體在內(nèi)存中存儲(chǔ)起來(lái), 下一次查詢(xún)同一個(gè)實(shí)體時(shí)不再?gòu)臄?shù)據(jù)庫(kù)獲取,而從內(nèi)存中獲取,這就是緩存 一級(jí)緩存的生命周期和Session相同;Session銷(xiāo)毀,它也銷(xiāo)毀 一級(jí)緩存中的數(shù)據(jù)可適用范圍在當(dāng)前會(huì)話(huà)之內(nèi)
Hibernate一級(jí)緩存的API
一級(jí)緩存無(wú)法取消,用兩個(gè)方法管理 evict():用于將某個(gè)對(duì)象從Session的一級(jí)緩存中清除 clear():用于將一級(jí)緩存中的所有對(duì)象全部清除 一級(jí)緩存也有些時(shí)候會(huì)對(duì)程序的性能產(chǎn)生影響
query.list()和query.iterate()區(qū)別
1.返回的類(lèi)型不同: list()返回List;iterate()返回Iterate。 2.查詢(xún)策略不同: list()直接發(fā)送sql語(yǔ)句,查詢(xún)數(shù)據(jù)庫(kù); iterate()發(fā)送sql語(yǔ)句,從數(shù)據(jù)庫(kù)取出id,然后先從緩存中根據(jù)id查找對(duì)應(yīng)信息, 有就返回結(jié)果,沒(méi)有就根據(jù)id發(fā)送sql語(yǔ)句,查詢(xún)數(shù)據(jù)庫(kù)。 3.返回對(duì)象不同: list()返回持久化實(shí)體類(lèi)對(duì)象; iterate()返回代理對(duì)象。 4.與緩存的關(guān)系不同: list()只緩存,但不使用緩存(查詢(xún)緩存除外); iterate()會(huì)使用緩存。第四章:二級(jí)緩存應(yīng)用 4-1 二級(jí)緩存應(yīng)用
提出問(wèn)題,如何解決?
有些常用的數(shù)據(jù),在一個(gè)session中緩存以后,我們希望在其它session中能夠直接使用,而不用再次緩存怎么辦?
使用更高級(jí)別的二級(jí)緩存,每個(gè)session共用的緩存
二級(jí)緩存的配置步驟
添加二級(jí)緩存對(duì)應(yīng)的jar包 在hibernate的配置文件中添加Provider類(lèi)的描述 添加二級(jí)緩存的屬性配置文件 在需要被緩存的表所對(duì)應(yīng)的映射文件中添加標(biāo)簽
usage:指定緩存策略,可選的策略包括:transactional,read-write,nonstrict-read-write或read-only include:指定是否緩存延遲加載的對(duì)象 region:指定二級(jí)緩存區(qū)域名,可以進(jìn)行個(gè)性化定制緩存策略第五章:對(duì)比及總結(jié) 5-1 一二級(jí)緩存對(duì)比及總結(jié)
二級(jí)緩存的介紹
二級(jí)緩存又稱(chēng)為“全局緩存”、“應(yīng)用級(jí)緩存” 二級(jí)緩存中的數(shù)據(jù)可適用范圍是當(dāng)前應(yīng)用的所有會(huì)話(huà) 二級(jí)緩存是可插拔式緩存,默認(rèn)是EHCahe, 還支持其它二級(jí)緩存組件如:Hashtable、OSCache、SwarmCache、JBoss TreeCache等
在通常情況下會(huì)將具有以下特征的數(shù)據(jù)放入到二級(jí)緩存中
很少被修改的數(shù)據(jù) 不是很重要的數(shù)據(jù),允許出現(xiàn)偶爾并發(fā)的數(shù)據(jù) 不會(huì)被并發(fā)訪(fǎng)問(wèn)的數(shù)據(jù) 參數(shù)數(shù)據(jù)
一二級(jí)緩存的對(duì)比
總結(jié)
Hibernate的緩存能提高檢索效率 Hibernate的緩存分為一級(jí)緩存和二級(jí)緩存 一級(jí)緩存是會(huì)話(huà)級(jí)緩存,二級(jí)緩存是應(yīng)用級(jí)緩存 Hibernate的緩存在提高檢索的同時(shí),也會(huì)增加服務(wù)器的消耗 所以要注意緩存的使用策略
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67372.html
時(shí)間:2017年07月11日星期二說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無(wú)學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:應(yīng)用場(chǎng)景 1-1 多對(duì)多的應(yīng)用場(chǎng)景 案例分析:企業(yè)項(xiàng)目開(kāi)發(fā)過(guò)程中 一個(gè)項(xiàng)目可由多個(gè)員工參與開(kāi)發(fā) 一個(gè)員工可同時(shí)參與開(kāi)發(fā)多個(gè)項(xiàng)目 示意圖 showImg(https://segmentfau...
時(shí)間:2017年08月16日星期三說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無(wú)學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程介紹 課程目錄 1.ssh知識(shí)點(diǎn)回顧 2.搭建ssm開(kāi)發(fā)環(huán)境 3.struts2整合spring 4.spring整合hibernate 5.案例:使用ssh框架開(kāi)發(fā)...
摘要:小時(shí)學(xué)會(huì)學(xué)習(xí)總結(jié)時(shí)間年月日星期六說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。慕課網(wǎng)教學(xué)示例源碼暫無(wú)。數(shù)據(jù)庫(kù)操作下第六章事務(wù)管理事務(wù)管理只有查詢(xún)的時(shí)候不加事務(wù),其它任何操作都要加事務(wù)。第七章課程回顧課程回顧總結(jié)介紹安裝配置的使用數(shù)據(jù)庫(kù)操作 《2小時(shí)學(xué)會(huì)SpringBoot》學(xué)習(xí)總結(jié) 時(shí)間:2017年2月18日星期六說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示...
摘要:時(shí)間年月日星期二說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。項(xiàng)目一個(gè)項(xiàng)目代表一個(gè)正在構(gòu)建的組件比如一個(gè)文件,當(dāng)構(gòu)建啟動(dòng)后,會(huì)基于實(shí)例化一個(gè)類(lèi),并且能夠通過(guò)變量使其隱式可用。任務(wù)動(dòng)作定義了一個(gè)最小的工作單元。 時(shí)間:2017年05月16日星期二說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:無(wú)個(gè)人學(xué)習(xí)源碼:https://github.com/zccod...
摘要:入門(mén)篇學(xué)習(xí)總結(jié)時(shí)間年月日星期三說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。主要的功能是日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等等。 《Spring入門(mén)篇》學(xué)習(xí)總結(jié) 時(shí)間:2017年1月18日星期三說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://git...
閱讀 1339·2019-08-30 15:44
閱讀 1391·2019-08-29 18:42
閱讀 446·2019-08-29 13:59
閱讀 782·2019-08-28 17:58
閱讀 2822·2019-08-26 12:02
閱讀 2424·2019-08-23 18:40
閱讀 2413·2019-08-23 18:13
閱讀 3115·2019-08-23 16:27