1.mybatis自带缓存功能。分为一级缓存,二级缓存。

2.一级缓存为 session 缓存,在一个 session中 ,一个查询的 select 语句只会执行一次,根据  <select></select>语句的id来判断。

  @Testpublic void testFind() throws IOException{SqlSession session = MybatisUtil.getSqlSession();User user = (User)session.selectOne("cn.sxt.vo.UserMapper.findUser",1);System.out.println(user);System.out.println("===========================");User u=(User)session.selectOne("cn.sxt.vo.UserMapper.findUser",1);System.out.println(u);session.close();}

3.二级缓存,是 sessionFactory 级别的缓存,在 mybatis 中实现二级缓存的步骤

a) 首先实体类要序列化,二级缓存存储的是数据文件

b) 在映射中添加 cache 标签

<cacheeviction="FIFO"flushInterval="60000"size="512"readOnly="true"/>

代码

@Testpublic void testFind() throws IOException{SqlSession session = MybatisUtil.getSqlSession();User user = (User)session.selectOne("cn.sxt.vo.UserMapper.findUser",1);System.out.println(user);session.close();System.out.println("===========================");session = MybatisUtil.getSqlSession();User u=(User)session.selectOne("cn.sxt.vo.UserMapper.findUser",1);System.out.println(u);session.close();}

附:

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.sxt.vo.UserMapper"><select id="findUser" resultType="User">select * from t_user where id=#{id}</select><cacheeviction="FIFO"flushInterval="60000"size="512"readOnly="true"/>
</mapper>

转载于:https://www.cnblogs.com/Vincent-yuan/p/11297670.html

java之mybatis之缓存相关推荐

  1. 为什么用redis做缓存而不是mybatis自带的缓存_如何用Java设计一个本地缓存,涨姿势了...

    最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存:一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能. 当然如果拿来和专门的缓存 ...

  2. 458、Java框架112 -【MyBatis - 一级缓存、二级缓存】 2020.12.28

    目录 0.一级缓存 1.在一个Session里查相同id的数据 2.在不同Session里查相同id的数据 3.二级缓存 4.基于前一个知识点 5.观察无二级缓存 6.启动二级缓存 7.在Catego ...

  3. java 一级缓存,MyBatis一级缓存避坑完全指南

    一级缓存概念 当我们使用Mybatis进行数据库的操作时候,会创建一个SqlSession来进行一次数据库的会话,会话结束则关闭SqlSession对象.那么一个SqlSession的生命周期即对应于 ...

  4. 深入了解MyBatis二级缓存

    深入了解MyBatis二级缓存 一.创建Cache的完整过程 我们从SqlSessionFactoryBuilder解析mybatis-config.xml配置文件开始: Reader reader ...

  5. springboot mybatis 事务_SpringBoot 下 Mybatis 的缓存

    "IT魔幻屋"致力于让你遇见更好的自己! 说起 mybatis,作为 Java 程序员应该是无人不知,它是常用的数据库访问框架.与 Spring 和 Struts 组成了 Java ...

  6. 通过源码分析MyBatis的缓存

    前方高能! 本文内容有点多,通过实际测试例子+源码分析的方式解剖MyBatis缓存的概念,对这方面有兴趣的小伙伴请继续看下去~ MyBatis缓存介绍 首先看一段wiki上关于MyBatis缓存的介绍 ...

  7. mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache

    1      查询缓存 1.1  什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级缓存是SqlSession级别的缓存.在 ...

  8. Mybatis一级缓存,二级缓存的实现就是这么简单

    介绍 又到了一年面试季,所以打算写一点面试常问的东西,争取说的通俗易懂.面试高级岗,如果你说熟悉Mybatis,下面这些问题基本上都会问 Mybatis插件的实现原理? 如何写一个分页插件? Myba ...

  9. (转)mybatis一级缓存二级缓存

    一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言.所以在参数和SQL完全一样的情况下,我们使用同一个SqlSess ...

最新文章

  1. 一作解读Microbiome:所谓的“富集培养”获得的微生物真的都是被“富集”出来的吗?
  2. 【深度学习入门到精通系列】使用Plotly绘制气泡图(以U-Net等网络性能比较为例)
  3. 系统测试和集成测试的区别
  4. java实验报告合肥工业大学_合肥工业大学 计算机专业 计算方法实验报告
  5. Ubuntu下搭建MPI并行计算环境
  6. C++bucket sort桶排序的实现算法(附完整源码)
  7. Effective Java 学习笔记 1
  8. 【期望DP】概率充电器(luogu 4284)
  9. 属性 方法c语言,C语言如何实现C++中对象属性和方法
  10. 设计模式 命令模式 实例_根据您的命令-命令设计模式
  11. Multidimensional Queries(二进制枚举+线段树+Educational Codeforces Round 56 (Rated for Div. 2))...
  12. 四分位数(Quartiles)、十分位数(Deciles)和百分位数(Percentiles
  13. as没有add as library选项
  14. 51单片机8路抢答器c语言,51单片机8路抢答器
  15. 小程序容器化:基于uni-app的Android小程序开发
  16. redis_主从复制搭建
  17. _exit(0) exit(0) exit(1) return区别
  18. 推行国产操作系统的优劣
  19. 从业了八年程序员觉得已经是非常的枯燥了
  20. EXCEL数据分析:统计函数

热门文章

  1. 数据质量管理的核心要素和技术原则
  2. python3生成验证码_Python3实现生成验证码图片
  3. AcWing 1813. 方块游戏(暴力枚举)
  4. java 可以直接当自定义标示符_JAVA 从头开始二
  5. 在线日食计算机,《全日食》
  6. CDH修改PySpark默认的Python版本
  7. Python爬虫之(六)requests库的用法
  8. ASP.NET Core 部署到Cont OS 服务器
  9. 快速清理Exchange 2003中的SMTP队列
  10. 全面掌握ping命令(三) ping命令防火墙设置