天天看點

mybatis --- 緩存

mybatis緩存

  • MyBatis包含一個非常強大的查詢緩存特性,它可以非常友善地定制和配置緩存。緩存可以極大的提升查詢效率。
  • MyBatis系統中預設定義了兩級緩存:

    一級緩存和二級緩存

    • 預設情況下,隻有一級緩存開啟。(SqlSession級别的緩存,也稱為本地緩存)
    • 二級緩存需要手動開啟和配置,他是基于namespace級别的緩存。
    • 為了提高擴充性,MyBatis定義了緩存接口Cache。我們可以通過實作Cache接口來自定義二級緩存

一級緩存失效的四種情況

  1. 沒有使用到目前的一級緩存,效果就是,還需要再向資料庫中發起一次查詢請求!sqlSession不同。
  2. sqlSession相同,查詢條件不同
    1. User user = mapper.queryUserById(1);
    2. User user2 = mapper2.queryUserById(2);
  3. sqlSession相同,兩次查詢之間執行了增删改操作!
  4. sqlSession相同,手動清除一級緩存
    • session.clearCache(); //手動清除緩存
mybatis --- 緩存

小結

  • 隻要開啟了二級緩存,我們在同一個Mapper中的查詢,可以在二級緩存中拿到資料
  • 查出的資料都會被預設先放在一級緩存中
  • 隻有會話送出或者關閉以後,一級緩存中的資料才會轉到二級緩存中
ssm

繼續閱讀