一、Mybaits提供的缓存机制可提高数据库性能,减少数据库压力,它主要有一级缓存和二级缓存
1、一级缓存:一级缓存是sqlSession的缓存,在这个对象中有HashMap来存储数据,如第一次查询数据的时候会把数据保存到HashMap中,第二次查询的时候会从HashMap中获取。当然HashMap是私有的,别的sqlSession是访问不到的。当SqlSession执行了增、删、改并提交时,就会删除HashMap中的数据,保证缓存中的数据与数据库中的数据是一样的。不会出现脏读的现象。
Mybaits默认开启的是一级缓存。
2、二级缓存:二级缓存是mapper级别的缓存,也就是同一个namespace的mappe.xml,当多个SqlSession使用同一个Mapper操作数据库的时候,得到的数据会缓存在同一个二级缓存区域,二级缓存默认是没有开启的。需要在setting全局参数中配置开启二级缓存。当SqlSession执行了增、删、改并提交时,就会删除Mapper中的数据,保证缓存中的数据与数据库中的数据是一样的。不会出现脏读的现象。