mybatis的工作流程,快取機制

2021-08-21 14:28:47 字數 796 閱讀 1049

一級快取:

mybatis的一級快取是sqlsession級別的快取,在運算元據庫時需要構造sqlsession物件,在物件中有乙個hashmap用於儲存快取資料,不同的sqlsession之間快取資料區域(hashmap)是互相不影響的。

一級快取的作用域是sqlsession範圍的,當在同乙個sqlsession中執行兩次相同的sql語句時,第一次執行完畢會將資料庫中查詢的資料寫到快取(記憶體)中,第二次查詢時會從快取中獲取資料,不再去底層進行資料庫查詢,從而提高了查詢效率。需要注意的是:如果sqlsession執行了dml操作(insert、update、delete),並執行commit()操作,mybatis則會清空sqlsession中的一級快取,這樣做的目的是為了保證快取資料中儲存的是最新的資訊,避免出現髒讀現象。

當乙個sqlsession結束後該sqlsession中的一級快取也就不存在了,mybatis預設開啟一級快取,不需要進行任何配置。

注意:mybatis的快取機制是基於id進行快取,也就是說mybatis在使用hashmap快取資料時,是使用物件的id作為key,而物件作為value儲存

二級快取:

mybatis預設沒有開啟二級快取,需要在setting全域性引數中配置開啟二級快取。

在mybatis-config.xml中配置:

[html] view plain

copy

cacheenabled的value為true表示在此配置檔案下開啟二級快取,該屬性預設為false。

以上配置建立了乙個lru快取,並每隔60秒重新整理,最大儲存512個物件,而且返回的物件被認為是唯讀。

Mybatis工作流程

簡單敘述一下,即把xml裡面的配置資訊進行解析,並儲存到configuration的容器中。1.sqlsessionfactory是mybatis的核心類,可以提供sqlsession,以sqlsession的形式執行sql。2.configuration用於儲存xml的配置資訊如sql等。其實sq...

mybatis工作流程

mybatis 的工作流程 1.讀取配置檔案 連資料庫的相關資訊 2.有了這些資訊就能建立sqlsessionfactory sqlsessionfactory的生命週期是程式級,程式執行的時候建立起來,程式結束的時候消亡 3.sqlsessionfactory建立sqlsession,目的執行sq...

MyBatis 的工作流程

mybatis功能架構 1.讀取配置檔案 連資料庫的相關資訊 2.有了這些資訊就能建立sqlsessionfactory sqlsessionfactory的生命週期是程式級,程式執行的時候建立起來,程式結束的時候消亡 3.sqlsessionfactory建立sqlsession,目的執行sql語...