MyBatis一級緩存和二級緩存的作用如下:
一級緩存:一級緩存是MyBatis默認開啟的,它是SqlSession級別的緩存,也叫本地緩存。當在同一個SqlSession中執行相同的查詢語句時,如果沒有執行增刪改操作,MyBatis會從緩存中直接獲取結果,而不需要再次向數據庫發送查詢請求,從而提升性能。一級緩存的作用范圍很小,僅限于同一個SqlSession中。
二級緩存:二級緩存是SqlSessionFactory級別的緩存,也叫全局緩存。當多個SqlSession共享同一個SqlSessionFactory時,它們可以共享同一個二級緩存。二級緩存可以跨越SqlSession,從而提供了更高的緩存效果。當執行查詢語句時,MyBatis先從二級緩存中查找數據,如果找到了就直接返回,沒有找到再去數據庫查詢,并將查詢結果存入二級緩存中。二級緩存的作用范圍更大,可以跨越多個SqlSession。
總而言之,一級緩存和二級緩存都可以提高查詢性能,減少數據庫訪問次數,但一級緩存的作用范圍更小,僅限于同一個SqlSession,而二級緩存的作用范圍更大,可以跨越多個SqlSession。