11.缓存:
11.1 一级缓存:
一级缓存是指MyBatis中SqlSession对象的缓存。
当我们执行查询后,查询的结果会同步存放到SqlSession为我们所提供的一块区域中。这个区域的结构是一个map
key:MapperID+offset+limit+Sql+所有的入参
value:用户信息
当SqlSession对象消失,或调用SqlSession的修改,添加,删除,commit(),close()等方法时,就会清除一级缓存。
11.2 二级缓存:
二级缓存是指MyBatis中SqlSessionFactory对象的缓存,由同一个SqlSessionFactory对象创建的SqlSession共享其缓存。
这里注意:二级缓存缓存的是对象,不是数据
mybatis的二级缓存是通过CacheExecutor(Executor的代理对象)实现的,所有的查询操作都会在CacheExecutor中先匹配缓存。
key:MapperID+offset+limit+Sql+所有的入参
配置步骤一:Mybatis全局配置中启用二级缓存配置
配置步骤二:对应的Mapper.xml中配置cache节点
配置步骤三:对应的select查询节点中添加useCache = true
12.注解开发:
12.1 mappers四种配置方式:
xml与接口注解同时存在(目录结构一样,哪怕没使用xml也会报错)
12.2 CURD:
CURD对应@Select,@update,@Insert,@Delete。注解中的信息包含了xml中的所有信息