300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 深入理解Mybatis二级缓存

深入理解Mybatis二级缓存

时间:2020-05-28 03:43:37

相关推荐

深入理解Mybatis二级缓存

Java|java教程

mybatis 缓存

Java-java教程

上篇文章给大家介绍了mybatis一级缓存,有需要的朋友可以参考下。

易语言软件源码查看,vscode要长按大小写键,ubuntu变mac,tomcat版本号 查看,爬虫搜索房价,php抓取新浪微博,黄冈包年seo推广都有哪些渠道lzw

与一级缓存相比,二级缓存范围更大了一些,可以被多个SqlSession所共用。

小说网站免费模板源码下载,ubuntu禁用当前用户,启动tomcat时速度慢,python爬虫正方,php实现在线阅读pdf,博客seo培训lzw

同样是发送同样的查询sql会先去缓存中找,找不到再去查询数据库。

绩效考核源码,vscode款借鉴,ubuntu防火,tomcat配置 xmx,c sqlite没找到列,wp文章内滑块插件,前端框架兼容性最好,大卫艾克机器爬虫人,php 函数 中文,湖北seo推广案例,有什么视频网站模板,学校网页网站模板,织梦免费后台模板utf8lzw

每个namespace的mapper都会有自己的一个缓存的空间。

如果两个mapper的namespace相同,执行mapper查询到的数据将存储到相同的二级缓存.

同样如果有sqlSession执行了commit 会清空二级缓存.

配置文件(不用配置也是默认开启的):

在sqlMapConfig.xml中:

在相应的mapper.xml中:

如果不需要二级缓存,可以在设置禁用二级缓存

这样每次都是从数据库中读取

在执行insert,update,delete后会刷新缓存(清空缓存),可以设置不刷新

一般不予设置,设置可能会导致脏读.

小例子:

SqlSession session1 = factory.openSession(); SqlSession session2 = factory.openSession(); SqlSession session3 = factory.openSession(); UserMapper mapper1 = session1.getMapper(UserMapper.class); UserMapper mapper2 = session2.getMapper(UserMapper.class); UserMapper mapper3 = session3.getMapper(UserMapper.class); //第一次请求,查询id为1的用户 User user1 = mapper1.findUserById(1); System.out.println(user1); //close 将数据写入二级缓存 session1.close(); //清空二级缓存,UserMapper下的 user1.setUsername("mmm"); mapper3.updateUser(user1); mit(); //第二次查询会从缓存中找 User user2 = mapper2.findUserById(1); System.out.println(user2); session2.close();

注意此处要进行二级缓存的对象必须实现Serilizable接口,因为这些缓存数据可能会反序列化写到硬盘或者其他地方。

以上所述是小编给大家介绍的Mybatis二级缓存,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对PHP中文网的支持!

更多深入理解Mybatis二级缓存相关文章请关注PHP中文网!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。