MyBatis的一级缓存和二级缓存
2024-09-30 01:30:52
一级缓存
是SqlSession级别的缓存,当使用了clearCache方法和,或者close方法的话,这个缓存失效,如果还有同样的查询,则还会发送一次查询
SqlSession session = SqlSessionFactoryUtil.getSession();
Emp emp = session.selectOne("queryEmpByNo", 7900);
System.out.println(emp);
Emp emp2 = session.selectOne("queryEmpByNo", 7900);
System.out.println(emp2);
二级缓存
二级缓存是跨sqlsession的缓存,就是mapper缓存,也就是说,如果前面执行了close方法,后一个SqlSession查询,是可以在SqlSession查询到的,但如果执行了cleaCache方法,则不行
步骤
- 需要在mybatis的核心配置文件(mybatis-config.xml)
<!-- 开启全局二级缓存 -->
<setting name="cacheEnabled" value="true"/>
- 在mapper.xml文件里也要开启缓存
<!--开启缓存-->
<cache/>
- 实体类要支持序列化,也就是实现Serializable接口
SqlSession session = SqlSessionFactoryUtil.getSession();
Emp emp = session.selectOne("queryEmpByNo", 7900);
System.out.println(emp);
session.close();
session = SqlSessionFactoryUtil.getSession();
Emp emp2 = session.selectOne("queryEmpByNo", 7900);
System.out.println(emp2);
最新文章
- js cookie
- C语言pow函数编写
- Vector 和 ArrayList 区别
- 再谈EF Core内存数据库单元测试问题
- Linux平台屏幕录像工具RecordMyDesktop
- LeetCode:Clone Graph
- Java基础之理解Annotation(与@有关,即是注释)
- Leetcode | Minimum/Maximum Depth of Binary Tree
- .NET 里操作Excel 出现有些列的数据取不到的问题
- JQ笔记
- 【转】android自动化测试之MonkeyRunner使用实例(三)
- 【jsp 防盗链】Referer的简单使用
- C++引用的作用
- 学习笔记—MySQL基础
- ubuntu安装驱动问题
- layui实现checkbox的目录树tree
- 安徽师大附中%你赛day7 T2 乘积 解题报告
- css隐藏元素的几种方法与区别
- 轻松搞定RabbitMQ(五)——路由选择
- 【.Net Core 学习系列】-- EF Core 实践(Code First)
热门文章
- Python学习笔记: 闭包
- nrf51822微信开发入门学习笔记1:开始前的准备
- HDU - 6199 gems gems gems (DP)
- ACM-ICPC 2015 Shenyang Preliminary Contest B. Best Solver
- JAVA、JDK等入门概念,下载安装JAVA并配置环境变量
- 2015四川省赛 D Vertex Cover 搜索
- 【Netty】Netty入门之WebSocket小例子
- loj2276 「HAOI2017」新型城市化
- java中,为什么char类型数组可以直接用数组名打印,打印结果居然不是地址值!
- Python学习——第一天