MyBatis 一級緩存和二級緩存及ehcache整合
阿新 • • 發佈:2018-11-14
sql ESS jar tis alt 技術分享 sources 為什麽 圖片
一級緩存
什麽是緩存??
緩存是存儲在內存(cache)中的數據,一般情況都存在內存,在內存數據存儲滿了,會存儲到硬盤上(disk),或是在我們進行一些操作和配置也可以把緩存存儲到磁盤中。
緩存的作用是什麽??
緩存的作用可以減輕數據庫的壓力,減少用戶對數據庫的訪問,可以說用戶對數據庫進行的重復操作在緩存中就可以實現操作,提高用戶體驗。
下面這張圖是緩存的理解圖
曾刪改會對緩存造成影響。
寫個測試,測試一下緩存是否存在: 答案是肯定的
現在測試一下進行曾刪改數據,是否會對緩存造成影響?
二級緩存
二級緩存和一級緩存的區別, 一級緩存是存儲在SqlSession作用域中生命周期是整個會話是進程級別的,二級緩存是可以跨進程的,實現數據共享。作用域是Mapper。
緩存的底層其實是個Map集合,key用於存儲SQLId和sql,value存儲的是sql的引用。
二級緩存默認是開啟的,在大配置中,但是開啟二級緩存要有三個要素。
二級緩存的開啟方式: 1.在大配置中的setting設置二級緩存 2.在小配置中寫cache自閉和標簽 3.實體類繼承Serializable
二級緩存的作用比一級緩存大,二級緩存並不是在一個會話中起作用,將一個會話結束,開啟另一個會話二級緩存是否會起作用
ehcache緩存的配置
為什麽要配置ehcache?
因為ehcache是專註緩存這塊的,比mybatis自身的要快捷方便很多,因為mybatis註重的是框架。
1.在resources下可以上網查一下這個文件
2.在小配置中增加一條type寫的是你ehcache的全路徑
3.在項目的pom.xml引入ehcahce的jar包
MyBatis 一級緩存和二級緩存及ehcache整合