mybatis缓存
一级缓存失效的情况:
1.不同的SqlSession对应着不同的缓存;
2.同一个SqlSession执行两次相同查询之间手动清空缓存或手动提交事务
3.同一个SqlSession执行两次相同查询之间做了增删改的操作
4.同一个SqlSession但是查询条件不同
二级缓存
需要手动开启
开启二级缓存文件需要两个步骤:1.第一需要在mybatis全局配置文件中配置setting属性,设置名为cacheEnabled的属性值为true即可
<settings>
<!--
(1):开启二级缓存,这个全局的配置二级缓存
默认是开启的,但是还是需要写上,防止版本的更新
-->
<setting name="cacheEnabled" value="true"/>
</settings>
2.1)在具体需要二级缓存的mapeer映射文件中开启二级缓存,值需要在相应的映射文件中添加一个cache标签即可
2):在相应的映射文件中开启二级缓存
<!-- 开启二级缓存 -->
<cache></cache>
3)查询数据封装的实体类要实现序列化的接口
4)二级缓存需要在一级缓存关闭或者提交后生效
二级缓存失效的条件:
1.在两次查询之间进行了任意的增删改操作,一级二级缓存同时失效
myabatis分页插件
1.引入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.1</version>
</dependency>
2.全局配置文件加一个属性
<!--在mybatis配置文件中 配置mybatis插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 配置mysql方言 -->
<property name="helperDialect" value="mysql" />
<!-- 设置为true时,如果pageSize=0就会查询出全部的结果 -->
<property name="pageSizeZero" value="true" />
<!-- 3.3.0版本可用,分页参数合理化,默认false禁用 -->
<!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
<!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
<property name="reasonable" value="true" />
</plugin>
</plugins>