mybatis 默认开启一级缓存,它的二级缓存是mapper范围级别的,除了在SQLMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓存.
-
config.xml ,开启二级缓存 : <setting name="cacheEnabled" value="true"/>
-
在Mapper.xml文件头指定使用缓存:<cache readOnly="true" size="500"
flushInterval="120000" eviction="LRU"/>
其中 readOnly=true 说明所有的sql语句查询返回的对象是同一个,有助于提高查询的性能,但并发时,操作同一条数据是不安全的
size=500 指缓存的对象数量,默认是1024,flushInterval 指缓存的过期时间毫秒值 eviction是指淘汰算法 - 在具体的sql语句中指定缓存,默认开启:<select id="selectByName"
useCache="true"></select>