mybatis的缓存

mybatis有两个级别的缓存,一个级别是session级别的缓冲,另外一个是sessionFactory级别的缓存。
session级别的缓存(一级缓存)
在mybatis中,启动一个session,默认就会启用session的级别的缓存。不需要配置。 
sessionFactory级别的缓存(二级缓存)
如果要启用sessionFactory级别的缓存,需要配置。
第一步,需要在mybatis主配置文件中启用二级缓存 
第二步,在需要启用二级缓存的mapper文件中增加cache子标签
注意:如果不想让这个mapper文件中所有的方法都启用二 级缓存,可以对select标签进行单独的配置: 
userCache默认是true,如果设置成false,则该条sql不启用二级缓存。 
第三步,需要把查询到的实体类实现序列化的接口

第四步,测试

/**
* 测试session级别的缓存
*/
public class Test06 {
public static void main(String[] args) {
SqlSession session1 = SqlSessionFactoryUtil.getSession();
//第一次查询所有用户的数据
EmpDao empDao1 = session1.getMapper(EmpDao.class);
List<Emp> emps1 = empDao1.listAll();
System.out.println("员工总人数:"+emps1.size());
System.out.println("=====");
session1.close();
SqlSession session2 = SqlSessionFactoryUtil.getSession();
//第二次次查询所有用户的数据
EmpDao empDao2 = session2.getMapper(EmpDao.class);
List<Emp> emps2 = empDao2.listAll();
System.out.println("员工总人数:"+emps2.size());
System.out.println("=====");
session2.close();
}
}

注意:session记得关闭。

posted on 2019-05-19 16:18  不酷也要写代码  阅读(119)  评论(0编辑  收藏  举报

导航