缓存

1.一级缓存
2.二级缓存

缓存的意义

应用程序和数据库的交互的过程是一个相对比较耗时的过程,缓存是为了让应用程序减少对数据库的访问,提升程序运行效率

1.一级缓存(Session缓存)

1.1 Mybatis默认SqlSession缓存开启
    1.1.1 同一个SqlSession 对象调用同一个<select>时,只有第一次访问
数据库,第一次之后把查询结果缓存到SqlSession 缓存区(内存)中
    1.1.2 缓存的是statement对象(也就是一个<select>)
    1.1.3 有效范围必须是同一个SqlSession对象
1.2 缓存流程

1.先去缓存区找是否存在statement
2.返回结果
3.如果没有缓存statement对象,就去数据库中获取数据
4.数据库返回查询结果
5.把查询结果放到对应的缓存区中

2.二级缓存(SqlSessionFactory缓存)

2.1 有效范围:同一个factory内的任意SqlSession
2.2 什么时候使用?
当数据频繁被使用,很少被修改
2.3 使用二级缓存的步骤

1.在mapper.xml中添加<cache readOnly="true“></cache>
2.如果不写readOnly="true”(含义:是否允许对二级缓存内容进行读取),则需要把实例类序列化:public class Log {···} -->public class Log implements Serializable{···}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容