mybatis一级缓存、二级缓存

2017-12-14  本文已影响0人  p7878389

mybatis一级缓存的作用域是同一个SqlSession,在同一个sqlSession中两次执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取数据将不再从数据库查询,从而提高查询效率

mybatis二级缓存是mapper级别的缓存,根据 mapper的namespace+sqlId作为key缓存数据,二级缓存是跨session的

一级缓存:

                    1、客户端获取sqlsession链接,执行查询sql,首先判断sqlsession中是否存在缓存数据,不存在则执行查询sql,存在则直接返回缓存数据;

                    2、在同一个sqlsession下,执行insert、update、remove,commit时会清空缓存的数据,防止脏读

二级缓存:

                    1、多个sqlsession共享一个mapper的二级缓存区

                    2、可以配合使用第三方缓存框架

上一篇 下一篇

猜你喜欢

热点阅读