一級快取 sqlsession級別
一級快取也叫本地快取。在mybatis中,一級快取是預設開啟的。
一級快取只存在於乙個連線開啟與關閉之間。在乙個連線開啟與關閉之間的查詢結果會,存在一級快取中。下一次再次查詢此物件會直接從快取中取出,而不再經過sql語句查詢。
測試1:
由上圖可以看出,在同乙個連線中,查詢兩次同乙個物件,只走了一次sql語句查詢第一次查詢的結果存到了一級快取中,當下一次查詢這個物件時,直接從快取中取出,不再走sql語句。測試2:在兩次查詢相同結果中加入乙個查詢語句,並沒有重新整理此快取,所以在第二次查詢作者2
時,同樣是從快取中提取。
測試3:在兩次查詢相同結果中加入乙個insert語句,重新整理此快取,所以在第二次查詢作者2
時,需要重新查詢。
快取失效:
增刪改操作,重新整理快取
查詢不同的東西
手動清理快取sqlsession.clearcache();
二級快取又叫全域性快取,在mybatis中預設關閉,通過配置設定+標籤開啟二級快取,在這種情況下,實體類需要進行例項化才可以進行操作。
>
name
="cacheenabled"
value
="true"
/>
settings
>
實體類進行例項化:
@data
public
class
blog
implements
serializable
eviction
="fifo"
flushinterval
="60000"
size
="512"
readonly
="true"
/>
測試:
二級快取:在乙個sqlsession關閉之後,該快取會將結果存放到二級快取中,這時當有新的連線查詢此結果時,會直接從二級快取中取出。
快取原理:
MyBatis學習 快取
將資料存放在程式記憶體中,極大地提公升了程式讀寫資料的速度 mybatis提供快取,用於減輕資料查詢的壓力,提高效能 sqlsession級別的快取 每個session對應乙個快取 一級快取是sqlsession級別的快取。在運算元據庫時需要構造 sqlsession物件,在物件中有乙個 記憶體區域...
mybatis學習 快取
一級快取 1.首先讓我們來證明一級快取的存在。使用者持久層dao 我們可以發現,雖然在上面的 中我們查詢了兩次,但最後只執行了一次資料庫操作,這就是 mybatis 提供給我們的一級快取在起作用了。因為一級快取的存在,導致第二次查詢 id 為 55 的記錄時,並沒有發出 sql 語句從資料庫中查詢資...
hibernate快取,mybatis快取詳解
hibernate的快取有一級快取,二級快取,查詢快取。一級快取 很簡單,session級別的快取,通過get,update可以將物件放到一級快取中。二級快取 sessionfactory級別的快取,通過get,list可以將物件放到二級快取中,這裡我必須細講一下,list雖然能夠把物件放入二級快取...