MyBatis 查詢快取關聯及一級快取

2021-08-17 18:05:15 字數 563 閱讀 1426

快取工作原理

我們查詢通過網路連線資料庫伺服器,會受網路頻寬的限制,所以我們在應用伺服器的記憶體中開闢塊空間,即快取空間,裡面盛放的是多個查詢結果。

快取工作原理:執行查詢時,先到快取中檢視有沒有,如果有直接返回,沒有再去db中查詢,查到的結果先給快取,再給sql。

mybatis查詢快取分類:

(1)、一級快取(sqlsession快取):其預設是開啟的,無法關閉,作用範圍為namespace,生命週期同整個sqlsession相同

(2)、二級快取:預設關閉,若使用必須開啟,作用範圍同一級快取,但是生命週期和整個應用相同

底層原理:一級快取的底層實現是乙個map,其value是查詢結果,而key由三部分構成(hashcode+statementid+sql語句)。每次select先到快取中查詢key,有則讀取value並返回,沒有去db中查詢,找到先組建後放到map中。

增刪改對一級快取影響:會重新整理(清空)一級快取【因為資料庫修改了,若不重新整理會拿到髒資料】

MyBatis查詢快取

一級快取 同乙個sqlsession物件,mybatis預設開啟一級快取。如果用同樣的sqlsession物件查詢相同的資料,則只會在第一次查詢時向資料庫傳送sql語句,並將查詢結果放入到sqlsession中 作為快取存在 後續再次查詢該同樣的物件時,則直接從快取中查詢該物件即可 即省略了資料庫的...

mybatis關聯查詢

備註 1 type是實體類 2 id是唯一標識,是resulmap指定的標識 4 collection是集合對映,用於多個物件 association是用於單個物件 5 如果裡面有collection,又有association,應該把association放前面,不然會報錯 6 無論是associ...

mybatis級聯 關聯 查詢

級聯 關聯 查詢,mybatis已經有了很好的支援,配置也相當簡單,示例 一種是一對一的,一種是一結多的,association用於前者,collection用於後者。下面都有相應配置。當然一對一的,可以直接配置在一起,就不用兩次查詢了。select from school where id sel...