国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Mybatis緩存

mrcode / 1964人閱讀

摘要:一級緩存和二級緩存緩存將語句查詢出來對應的對象進行緩存,供后續(xù)對象使用。所以說,一級緩存是基于的。為了解決相互共享問題,提供二級緩存解決該問題。注意,一級緩存對每個對象要求他們在所有語句后必須執(zhí)行語句,否則,不存在一級緩存。

Mybatis緩存

因為熱愛,所以拼搏。 --RuiDer

前導必備
- 數據庫
- Mybatis
Mybatis緩存
Mybatis提供緩存支持,志在提升開發(fā)的性能。數據庫數據的索引一般是基于磁盤的,而內存和高速緩存相對磁盤的讀寫速度相當快,基本是磁盤讀寫數據的十倍。尤其在互聯(lián)網開發(fā)中,追求速度,緩存為性能提供捷徑。Mybatis緩存包括一級緩存和二級緩存,一級緩存基于SqlSession層面,二級緩存基于SqlSessionFactory層面。
一級緩存和二級緩存
緩存:將sql語句select查詢出來對應的POJO對象進行緩存,供后續(xù)SqlSession對象使用。

一級緩存
    條件:
    - 同一個SqlSession對象
    - 同一個sql查詢語句
    當同一個SqlSession對象進行兩次相同select語句查詢時,第一次會執(zhí)行sql語句進行數據庫的索引,
之后將所查詢數據對應的POJO對象進行緩存;第二次執(zhí)行相同參數的sql語句查詢前,不會像第一次執(zhí)行sql語句,
而是直接從緩存中索引數據對象。所以說,一級緩存是基于SqlSession的。不同的SqlSession對象的緩存不可以
共享,不能相互訪問。為了解決相互共享問題,Mybatis提供二級緩存解決該問題。注意,一級緩存對每個SqlSession
對象要求他們在所有sql語句后必須執(zhí)行commit語句,否則,不存在一級緩存。

    二級緩存
    條件:
    - 同一個SqlSessionFactory對象
    - 不同的SqlSession對象
    - 共享POJO對象、
    二級緩存是相對SqlSessionFactory對象而言的,同一個SqlSessionFactory創(chuàng)建的不同的SqlSession對象,
可以共享該SqlSessionFactory下的所有POJO對象,也就是數據庫數據的共享。但是二級緩存要求對應的POJO類需要實現(xiàn)
序列化,也就是實現(xiàn)java.io.Serializable接口。
一級緩存 和 二級緩存 的配置
一級緩存:Mybatis默認一級緩存,只要每個SqlSession對象執(zhí)行commit語句,都會存在一級緩存。
二級緩存:
    
    加入上述語句,就會開啟二級緩存。二級緩存會進行序列化和反序列化的過程,所以說POJO
必須要實現(xiàn)Seriaizable接口。二級緩存cache元素會將select出來的POJO對象進行緩存,對于
insert,update,delete sql語句二級緩存會自動刷新。
二級緩存配置cache元素配置項
//cache接口源碼
public interface Cache{
    //獲取緩存id
    public int getId();
    
    //保存POJO對象,key為鍵,value為值
    public void putObject(Object key,Object value);

    //獲取POJO對象
    public Object getObject(Object key);
    
    //清除緩存
    void clear();

    //獲取緩存大小
    public int getSize();
    
    //獲取讀寫鎖,主要是多線程時使用
    ReadWriteLock getReadWriteLock();
}
配置Redis或者MongoDB緩存處理

    

我的GitHub

我的博客

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71405.html

相關文章

  • Mybatis【逆向工程,緩存,代理】知識要點

    摘要:一級緩存值得注意的地方默認就是支持一級緩存的,并不需要我們配置和整合后進行代理開發(fā),不支持一級緩存,和整合,按照的模板去生成代理對象,模板中在最后統(tǒng)一關閉。總結的一級緩存是級別的。 前言 本文主要講解Mybatis的以下知識點: Mybatis緩存 一級緩存 二級緩存 與Ehcache整合 Mapper代理 使用Mapper代理就不用寫實現(xiàn)類了 逆向工程 自動生成代碼 ...

    wanglu1209 評論0 收藏0
  • MyBatis知識點整理

    摘要:得到用戶信息,將用戶信息存儲到一級緩存中。如果中間去執(zhí)行操作執(zhí)行插入更新刪除,則會清空中的一級緩存,這樣做的目的為了讓緩存中存儲的是最新的信息,避免臟讀。 基礎: 1、 概念:Java當中的一個持久層框架。2、 特點、優(yōu)勢:(1)把java代碼和SQL代碼做了一個完全分離。(2)良好支持復雜對象的映射(輸入映射、輸出映射)(3)使用動態(tài)SQL,可以預防SQL注入。3、 ...

    zhangqh 評論0 收藏0
  • MyBatis緩存介紹

    摘要:緩存介紹正如大多數持久層框架一樣,同樣提供了一級緩存和二級緩存的支持一級緩存基于的本地緩存,其存儲作用域為,當或之后,該中的所有就將清空。一級緩存實現(xiàn)對的操作內部都是通過來執(zhí)行的。 MyBatis緩存介紹   正如大多數持久層框架一樣,MyBatis 同樣提供了一級緩存和二級緩存的支持   一級緩存: 基于PerpetualCache 的 HashMap本地緩存,其存儲作用域為 Se...

    mingde 評論0 收藏0
  • Spring Boot2(二):使用Spring Boot2集成Mybatis緩存機制

    摘要:本文章的源碼再文章末尾什么是查詢緩存有一級緩存和二級緩存。默認開啟一級緩存。證明了一級緩存只是在數據庫會話內部共享的。但是,整合到中后,一級緩存就會被關閉。根據時間表比如沒有刷新間隔緩存不會以任何時間順序來刷新。 倉庫地址:spring-boot-learning歡迎star、fork,給作者一些鼓勵 學習SpringBoot集成Mybatis的第二章,了解到Mybatis自帶的緩存機...

    mikasa 評論0 收藏0
  • Spring Boot2(二):使用Spring Boot2集成Mybatis緩存機制

    摘要:本文章的源碼再文章末尾什么是查詢緩存有一級緩存和二級緩存。默認開啟一級緩存。證明了一級緩存只是在數據庫會話內部共享的。但是,整合到中后,一級緩存就會被關閉。根據時間表比如沒有刷新間隔緩存不會以任何時間順序來刷新。 倉庫地址:spring-boot-learning歡迎star、fork,給作者一些鼓勵 學習SpringBoot集成Mybatis的第二章,了解到Mybatis自帶的緩存機...

    NSFish 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<