mybatis一級緩存二級緩存
- mybatis緩存概述
- mybatis一級緩存
- mybatis二級緩存
mybatis緩存概述
CacheKey: hashcode(哈希值),checksum,namespace+id(namespace爲mapper文件的命名空間,id爲sql的id),.sql(查詢sql), parameter(查詢sql的參數);
以上字段,用於從緩存中查詢值的key;,相當於HashMap的key值。
mybatis一級緩存
一級緩存默認是開啓的,是session級別的,同一個sqlSession下,數據是共享的; 一級緩存localCacheScope級別分兩種,一種是session,另一種是statement; 如果想關閉一級緩存,可以把localCacheScope設置爲STATEMENT即可;
mybatis二級緩存
二級緩存是SqlSessionFactory級別的,具體操作過程是在mapper文件中,加上 ;從二級緩存的配置可以看出二級緩存是sqlSessionFactory級別的,因爲Mapper文件在mybatis初始化的時候會加載到configuration中,而configuration是生成sqlSessionFactory工廠類的基礎。
注意點:
a. session必須commit,緩存才能生效;commit的時候,纔會把緩存放到tcm裏面;
b. POJO對象必須要序列化,實現Serializable接口;