MyBatis的一級緩存是sqlSession作用域的,默認開啟,執行DML(insert, update, delete)操作后自動刪除。
下面介紹一下如何開啟MyBatis的二級緩存,作用域為Mapper:
1.修改config.xml配置文件:
<settings> <!-- 開啟二級緩存 --> <setting name="cacheEnabled" value="true"/> </settings>
這里需要注意一下configuration標簽下子標簽的順序。
2.在對應的Mapper.xml中配置二級緩存:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.wts.mapper.UserMapper"> <cache></cache> <!-- 新建用戶 --> <insert id="insertUser" parameterType="com.wts.entity.User"> insert into user values (#{id}, #{username}, #{password}) </insert> </mapper>
很簡單,只需要加個cache標簽就行了,如以上代碼標黃部分。
3.對應的實體類需要實現序列化接口:
package com.wts.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; @Data @AllArgsConstructor @NoArgsConstructor public class User implements Serializable { private long id; private String username; private String password; }
這樣就開啟了MyBatis默認的二級緩存。