java之mybatis之缓存
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之缓存相关推荐
- 为什么用redis做缓存而不是mybatis自带的缓存_如何用Java设计一个本地缓存,涨姿势了...
最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存:一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能. 当然如果拿来和专门的缓存 ...
- 458、Java框架112 -【MyBatis - 一级缓存、二级缓存】 2020.12.28
目录 0.一级缓存 1.在一个Session里查相同id的数据 2.在不同Session里查相同id的数据 3.二级缓存 4.基于前一个知识点 5.观察无二级缓存 6.启动二级缓存 7.在Catego ...
- java 一级缓存,MyBatis一级缓存避坑完全指南
一级缓存概念 当我们使用Mybatis进行数据库的操作时候,会创建一个SqlSession来进行一次数据库的会话,会话结束则关闭SqlSession对象.那么一个SqlSession的生命周期即对应于 ...
- 深入了解MyBatis二级缓存
深入了解MyBatis二级缓存 一.创建Cache的完整过程 我们从SqlSessionFactoryBuilder解析mybatis-config.xml配置文件开始: Reader reader ...
- springboot mybatis 事务_SpringBoot 下 Mybatis 的缓存
"IT魔幻屋"致力于让你遇见更好的自己! 说起 mybatis,作为 Java 程序员应该是无人不知,它是常用的数据库访问框架.与 Spring 和 Struts 组成了 Java ...
- 通过源码分析MyBatis的缓存
前方高能! 本文内容有点多,通过实际测试例子+源码分析的方式解剖MyBatis缓存的概念,对这方面有兴趣的小伙伴请继续看下去~ MyBatis缓存介绍 首先看一段wiki上关于MyBatis缓存的介绍 ...
- mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache
1 查询缓存 1.1 什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级缓存是SqlSession级别的缓存.在 ...
- Mybatis一级缓存,二级缓存的实现就是这么简单
介绍 又到了一年面试季,所以打算写一点面试常问的东西,争取说的通俗易懂.面试高级岗,如果你说熟悉Mybatis,下面这些问题基本上都会问 Mybatis插件的实现原理? 如何写一个分页插件? Myba ...
- (转)mybatis一级缓存二级缓存
一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言.所以在参数和SQL完全一样的情况下,我们使用同一个SqlSess ...
最新文章
- 一作解读Microbiome:所谓的“富集培养”获得的微生物真的都是被“富集”出来的吗?
- 【深度学习入门到精通系列】使用Plotly绘制气泡图(以U-Net等网络性能比较为例)
- 系统测试和集成测试的区别
- java实验报告合肥工业大学_合肥工业大学 计算机专业 计算方法实验报告
- Ubuntu下搭建MPI并行计算环境
- C++bucket sort桶排序的实现算法(附完整源码)
- Effective Java 学习笔记 1
- 【期望DP】概率充电器(luogu 4284)
- 属性 方法c语言,C语言如何实现C++中对象属性和方法
- 设计模式 命令模式 实例_根据您的命令-命令设计模式
- Multidimensional Queries(二进制枚举+线段树+Educational Codeforces Round 56 (Rated for Div. 2))...
- 四分位数(Quartiles)、十分位数(Deciles)和百分位数(Percentiles
- as没有add as library选项
- 51单片机8路抢答器c语言,51单片机8路抢答器
- 小程序容器化:基于uni-app的Android小程序开发
- redis_主从复制搭建
- _exit(0) exit(0) exit(1) return区别
- 推行国产操作系统的优劣
- 从业了八年程序员觉得已经是非常的枯燥了
- EXCEL数据分析:统计函数