mybatis的一级缓存————7
来源:互联网 发布:java获取post请求415 编辑:程序博客网 时间:2024/05/23 13:03
Mybatis一级缓存的作用域是同一个SqlSession。
第一个例子:
//获取session SqlSession session = sqlSessionFactory.openSession(); //获限mapper接口实例 UserMapper userMapper = session.getMapper(UserMapper.class); //第一次查询 User user1 = userMapper.selectUserById(1); System.out.println(user1); //第二次查询,由于是同一个session则不再向数据发出语句直接从缓存取出 User user2 = userMapper.selectUserById(1); System.out.println(user2);
原理:
Mybatis首先去缓存中查询结果集,如果没有则查询数据库,如果有则从缓存取出返回结果集就不走数据库。
Mybatis内部存储缓存使用一个HashMap,key为hashCode+sqlId+Sql语句。value为从查询出来映射生成的java对象
第二个例子:
//获取session SqlSession session = sqlSessionFactory.openSession(); //获限mapper接口实例 UserMapper userMapper = session.getMapper(UserMapper.class); //第一次查询 User user1 = userMapper.selectUserById(1); System.out.println(user1); //在同一个session执行更新 User user_update = new User(); user_update.setId(1); user_update.setUsername("李奎"); userMapper.updateUser(user_update); session.commit(); //第二次查询,虽然是同一个session但是由于执行了更新操作session的缓存被清空,这里重新发出sql操作 User user2 = userMapper.selectUserById(1); System.out.println(user2);
原理
该例子与第一个例子不同的是在两次查询中间加入了更新,更新操作执行后mybatis执行了清除缓存即清空HashMap。
阅读全文
0 0
- MyBatis——【一级缓存】
- mybatis的一级缓存————7
- mybatis 详解——一级缓存、二级缓存
- Mybatis介绍之缓存——一级缓存和二级缓存
- 【MyBatis框架点滴】——MyBatis一级缓存
- myBatis学习笔记(8)—— 一级缓存&二级缓存
- mybatis的一级缓存
- mybatis的一级缓存
- MyBatis的一级缓存
- Hibernate——一级缓存
- 博为峰JavaEE技术文章 ——MyBatis 缓存(2)一级缓存与二级缓存
- Hibernate学习笔记(三) — Hibernate 的一级缓存意义
- hibernate —— 一级缓存和二级缓存
- Hibernate一级缓存——Session
- mybatis的缓存机制(一级缓存二级缓存)
- Hibernate——一级缓存__二级缓存__查询缓存
- MyBatis (7)——Mybatis缓存
- 【Mybatis】——mybatis缓存
- 整数求和
- 迅雷前端笔试题
- ceshi
- js 原型继承 Prototype
- 操作系统(一)协作进程临界区一些代码理解--Peterson’s Solution
- mybatis的一级缓存————7
- oracle sql语句创建表空间、用户、并给用户赋予权限
- Java 如何创建线程
- win 10 用VMware workstation Pro 安装 黑苹果
- Linux下使用 tc 模拟网络延迟和丢包
- 美团点评初试问题总结
- 基于颜色分割的盲道识别算法
- CSS总结------文本字体类
- 单例模式--Singleton的两种实现方式