java筆記 mybatisy快取

2021-09-01 13:16:34 字數 1533 閱讀 2501

一 mybatis框架中快取分類:

一級快取:

[會話快取]。在當前使用者訪問資料庫期間,所有的查詢結果都會自動

儲存起來。使用者可以使用sqlsession從一級快取中進行讀取。

而其他使用者的sqlsession是不能讀取當前使用者的一級快取

一級快取自動開啟,開發人員是不能關閉一級快取

二級快取:

【全域性快取】,

1.二級快取針對某乙個表來設定的共享快取

2.如果乙個sqlsession物件將要被銷毀時,mybatis框架

自動將這個sqlsession中與當前表關聯的資料存放到這個共享快取中.

3.那麼此時其他sqlsession如果需要得到相同的資料,就可以到共享快取中

讀取4.由於二級快取對於服務端記憶體消耗較大,因此mybatis框架是不會主動

開發二級快取,需要開發人員手動開啟二級。

二 一級快取失效原因:

1.同乙個使用者,使用兩個sqlsession,是看不到一級快取工作。

2.在乙個sqlsession,使用查詢條件不同,也會導致一級快取失效

select * from dept where deptno=10 結果1

select * from dept where deptno=20 結果2

3.在乙個sqlsession使用相同查詢條件此時在查詢之間進行資料修改操作導致一級快取重新整理(清空)

4.在乙個sqlsession使用相同查詢條件此時手動重新整理快取時導致一級快取失敗

三 與mybatis中【一級快取】和【二級快取】關聯的屬性

1.全句變數:核心配置檔案

1)cacheenabled[預設值就是true]: 表示開啟二級快取

2)cacheenabled=false, 關閉二級快取。一級快取依然存在

1)usecache只出現在2)usecache預設值就是true

3)usercache設定false時,對於一級快取沒有任何影響

此時第乙個sqlsession與當前查詢語句

關聯的結果,在第乙個sqlsession關閉時

是不會放到二級快取中。

1)flushcache會出現【新增,更新,刪除,查詢】標籤

2)flushcache屬性決定當前sql執行完畢後,是否會重新整理(清空)快取

3)flushcache在【新增,更新,刪除】標籤中,預設值true

4)flushcache在【新增,更新,刪除】標籤中,設定為false

(清空一級快取資料/不會清空二級快取資料)

5)flushcache也可以在【查詢標籤出現】,預設值false

(一級快取和二級快取都可以使用)

6)flushcache在查詢標籤中設定為true。(查詢結果不會儲存到一級快取和二級快取)

4.sqlsession.clearcache(): 只會清空當前會話的一級快取。不會影響資料儲存到二級快取

Silverlight動畫學習筆記 三 緩動函式

一 定義 緩動函式 可以將自定義算術公式應用於動畫 二 為什麼要用緩動函式 您可能希望某一物件逼真地彈回或其行為像彈簧一樣。您可以使用關鍵幀動畫甚至 from to by 動畫來大致模擬這些效果,但可能需要執行大量的工作,並且與使用算術公式相比動畫的精確性將降低。三 例項講解 usercontrol...

Flash Flex學習筆記 38 緩動動畫

緩動 與 勻變速 看上去很類似,但其實有區別 勻變速的公式為 v v0 at 速度v與時間t是線性 正比 關係,而且這種運動不需要確定目標點,速度可以按照這種規律一直變下去 而緩動指的是物體越接近目標時速度越慢,速度跟距離成反比關係,用公式描述為 v k s 0先看個演示 package priva...

Mybatis個人學習筆記(六) 延遲載入與快取

在真正使用資料時才發起查詢,不用的時候不查詢,按需載入。懶載入 舉例 乙個使用者關聯100個賬戶,查詢使用者時,是否需要把關聯的賬戶資訊全部查詢出來?舉例 查詢賬戶時,需要用到使用者資訊,則需要立即把關聯的使用者資訊一起查詢出來 只要以呼叫方法,立即發起查詢 在對應的四種表關係中 一對多,多對多 通...