一级缓存
mybatis的一级缓存的作用域是session 如果执行相同的sql,就不会去数据库里查了,直接缓存命中。
在mybatis中,一级缓存默认是开启的,并且一直无法关闭。
可以使用sqlsession.clearCache()清除缓存
执行update,delete,insert 语句的时候,清空缓存 刷新缓存
二级缓存
mybatis 的二级缓存的作用域是一个mapper的namespace ,同一个namespace中查询sql可以从缓存中命中。
二级缓存是跨session
开启二级缓存
需要在当前sql映射文件中开启二缓缓存
<?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">