MyBatis中的一級緩存是SqlSession級別的緩存,即在同一個SqlSession中執行相同的查詢,第一次查詢結果會被緩存下來,后續再執行相同的查詢時,直接從緩存中獲取結果,提高查詢效率。但是一級緩存的生命周期比較短,當SqlSession關閉時,緩存也會失效。
而二級緩存是Mapper級別的緩存,即多個SqlSession共享同一個Mapper的緩存。當執行查詢時,MyBatis會先在二級緩存中查找結果,如果找到則直接返回結果,如果沒有則再去數據庫查詢并將結果存入二級緩存中。二級緩存的生命周期比較長,可以跨SqlSession共享數據,但是需要開啟和配置才能生效。