MyBatis缓存

缓存介于应用程序和数据库之间,其作用是降低应用程序对物理数据库访问的频次,提高应用程序性能。应用程序在查询数据时,首先会在缓存中查找,如果命中则直接将数据返回,避免建立数据库查询的性能损耗。

MyBatis提供两级缓存:

  • 一级缓存:

    事务级别,由SqlSession管理维护。只能被当前事务访问,每个事务都有各自的缓存。缓存的生命周期依赖于事务的生命周期:当事务结束时,缓存的生命周期也会结束。

  • 二级缓存:

    应用(进程)级别,由SqlSessionFactory管理维护,可以被属于同一SqlSessionFactory的所有事务共享。缓存的生命周期依赖于应用的生命周期,当应用结束时,缓存的生命周期同时结束。

注意事项:可以在核心配置文件中开启MyBatis日志查看缓存使用情况(放在properties标签下方)

  
      
  

打开二级缓存:在Dao映射文件中增加标签

将实体类序列化(关联对象必须同时序列化)

public class User implements Serializable {
    private String id;// 用户编号
    private String name;// 用户名
    private Integer age;// 年龄
    private Category category;// 所属类别
    private static final long serialVersionUID = 1L;
}

你可能感兴趣的:(MyBatis缓存)