MyBatis-学习笔记11【11.Mybatis的缓存】
- Java后端 学习路线 笔记汇总表【黑马程序员】
- MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】【day01】
- MyBatis-学习笔记02【02.Mybatis入门案例】
- MyBatis-学习笔记03【03.自定义Mybatis框架】
- MyBatis-学习笔记04【04.自定义Mybatis框架基于注解开发】【day02】
- MyBatis-学习笔记05【05.使用Mybatis完成CRUD】
- MyBatis-学习笔记06【06.使用Mybatis完成DAO层的开发】
- MyBatis-学习笔记07【07.Mybatis的连接池及事务】【day03】
- MyBatis-学习笔记08【08.动态SQL】
- MyBatis-学习笔记09【09.Mybatis的多表操作】
- MyBatis-学习笔记10【10.JNDI扩展知识】
- MyBatis-学习笔记11【11.Mybatis的缓存】【day04】
- MyBatis-学习笔记12【12.Mybatis注解开发】
目录
1 今日课程安排
2 延迟加载和立即加载的概念
3 mybatis一对一实现延迟加载
4 mybatis一对多实现延迟加载
5 缓存的概念
6 Mybatis中的一级缓存
7 触发清空一级缓存的情况
8 mybatis的二级缓存
1 今日课程安排
1、Mybatis中的延迟加载
什么是延迟加载?
什么是立即加载?
2、Mybatis中的缓存
什么是缓存?
为什么使用缓存?
什么样的数据能使用缓存,什么样的数据不能使用?
Mybatis中的一级缓存和二级缓存
3、Mybatis中的注解开发
环境搭建
单表CRUD操作(代理Dao方式)
多表查询操作
缓存的配置
2 延迟加载和立即加载的概念
1、Mybatis中的延迟加载
问题:在一对多中,当我们有一个用户,它有100个账户。
在查询用户的时候,要不要把关联的账户查出来?
在查询账户的时候,要不要把关联的用户查出来?
在查询用户时,用户下的账户信息应该是,什么时候使用,什么时候查询的。
在查询账户时,账户的所属用户信息应该是随着账户查询时一起查询出来。
什么是延迟加载?
在真正使用数据时才发起查询,不用的时候不查询。按需加载(懒加载)
什么是立即加载?
不管用不用,只要一调用方法,马上发起查询。
在对应的四种表关系中:一对多、多对一、一对一、多对多
一对多、多对多:通常情况下我们都是采用延迟加载。
多对一、一对一:通常情况下我们都是采用立即加载。
2、Mybatis中的缓存
什么是缓存?
为什么使用缓存?
什么样的数据能使用缓存,什么样的数据不能使用?
Mybatis中的一级缓存和二级缓存
3、Mybatis中的注解开发
环境搭建
单表CRUD操作(代理Dao方式)
多表查询操作
缓存的配置
3 mybatis一对一实现延迟加载
![]()
延迟加载
4 mybatis一对多实现延迟加载
5 缓存的概念
1、Mybatis中的延迟加载
问题:在一对多中,当我们有一个用户,它有100个账户。
在查询用户的时候,要不要把关联的账户查出来?
在查询账户的时候,要不要把关联的用户查出来?
在查询用户时,用户下的账户信息应该是,什么时候使用,什么时候查询的。
在查询账户时,账户的所属用户信息应该是随着账户查询时一起查询出来。
什么是延迟加载?
在真正使用数据时才发起查询,不用的时候不查询。按需加载(懒加载)
什么是立即加载?
不管用不用,只要一调用方法,马上发起查询。
在对应的四种表关系中:一对多、多对一、一对一、多对多
一对多、多对多:通常情况下我们都是采用延迟加载。
多对一、一对一:通常情况下我们都是采用立即加载。
2、Mybatis中的缓存
什么是缓存:
存在于内存中的临时数据。
为什么使用缓存:
减少和数据库的交互次数,提高执行效率。
什么样的数据能使用缓存,什么样的数据不能使用:
适用于缓存:
经常查询并且不经常改变的。
数据的正确与否对最终结果影响不大的。
不适用于缓存:
经常改变的数据;
数据的正确与否对最终结果影响很大的。
例如:商品的库存,银行的汇率,股市的牌价。
Mybatis中的一级缓存和二级缓存
3、Mybatis中的注解开发
6 Mybatis中的一级缓存
7 触发清空一级缓存的情况
8 mybatis的二级缓存
![]()
二级缓存
1、Mybatis中的延迟加载问题:在一对多中,当我们有一个用户,它有100个账户。在查询用户的时候,要不要把关联的账户查出来?在查询账户的时候,要不要把关联的用户查出来?在查询用户时,用户下的账户信息应该是,什么时候使用,什么时候查询的。在查询账户时,账户的所属用户信息应该是随着账户查询时一起查询出来。什么是延迟加载?在真正使用数据时才发起查询,不用的时候不查询。按需加载(懒加载)什么是立即加载?不管用不用,只要一调用方法,马上发起查询。在对应的四种表关系中:一对多、多对一、一对一、多对多一对多、多对多:通常情况下我们都是采用延迟加载。多对一、一对一:通常情况下我们都是采用立即加载。
2、Mybatis中的缓存什么是缓存:存在于内存中的临时数据。为什么使用缓存:减少和数据库的交互次数,提高执行效率。什么样的数据能使用缓存,什么样的数据不能使用:适用于缓存:经常查询并且不经常改变的。数据的正确与否对最终结果影响不大的。不适用于缓存:经常改变的数据;数据的正确与否对最终结果影响很大的。例如:商品的库存,银行的汇率,股市的牌价。Mybatis中的一级缓存和二级缓存一级缓存:它指的是Mybatis中SqlSession对象的缓存。当我们执行查询之后,查询的结果会同时存入到SqlSession为我们提供一块区域中。该区域的结构是一个Map。当我们再次查询同样的数据,mybatis会先去sqlsession中查询是否有,有的话直接拿出来用。当SqlSession对象消失时,mybatis的一级缓存也就消失了。二级缓存:它指的是Mybatis中SqlSessionFactory对象的缓存。由同一个SqlSessionFactory对象创建的SqlSession共享其缓存。二级缓存的使用步骤:第一步:让Mybatis框架支持二级缓存(在SqlMapConfig.xml中配置)第二步:让当前的映射文件支持二级缓存(在IUserDao.xml中配置)第三步:让当前的操作支持二级缓存(在select标签中配置)
3、Mybatis中的注解开发环境搭建单表CRUD操作(代理Dao方式)多表查询操作缓存的配置
MyBatis-学习笔记11【11.Mybatis的缓存】相关推荐
- [MyBatis学习笔记] 二、Mybatis基本操作及相关标签介绍
[MyBatis学习笔记] 二.Mybatis基本操作及相关标签介绍 一.Mybatis简介 二.简单的CRUD操作 1.构建SqlSessionFactory (1)编辑mybatis-config ...
- mybatis学习笔记-02-第一个mybatis程序
该视频为狂神说java视频配套笔记(博主自己手打223,日后做个参考223),b站连接:Mybatis最新完整教程IDEA版[通俗易懂]-02-第一个mybatis程序) 文章目录 2.第一个myba ...
- Mybatis学习笔记 4:Mybatis 连表查询(一)——一对多关系
完整代码在这 在查询数据库时,我们经常会遇到多张表联合查询的情况,而Mybatis使连表查询更加简便了,查询出的数据格式非常易于使用,省去了一大部分复杂的代码编写工作,对于关系型数据库来说,数据模型之 ...
- Mybatis学习笔记_5、Mybatis动态SQL
动态 SQL 是 MyBatis 的强大特性之一.MyBatis提供的对SQL语句动态组装的功能解决了开发人员在使用JDBC或其他的框架进行数据库开发时,需要手动拼装SQL的繁琐问题. 动态SQL元素 ...
- Mybatis学习笔记——第一天
Mybatis学习打卡 Mybatis学习笔记---第一天 Mybatis笔记 第一天 一.引言 1. 现有Jdbc的缺陷 2. Mybatis框架 3. 搭建环境 1) 引入jar包 2) 引入配置 ...
- 超详细Mybatis学习笔记(可供下载)
文章目录 1.简介 2.第一个Mybatis程序 搭建环境 编写代码 测试 3.CRUD(增删改查) 3.1.几个属性 3.2.select 3.3.insert 3.4.delete 3.5.upd ...
- 【应用篇】MyBatis学习笔记
MyBatis学习笔记 一 环境配置 1 什么是MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的 JDBC 代码和参 ...
- mybatis学习笔记(13)-延迟加载
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...
- MyBatis学习笔记(1)—使用篇
MyBatis学习笔记(1)-使用篇 MyBatis学习笔记(2)-映射关系篇 MyBatis学习笔记(3)-高级映射之一对一映射 Mybatis学习笔记(4)-高级映射之一对多映射 Mybatis学 ...
- 【Springboot学习笔记】SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法
[Springboot学习笔记]SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法 目录 1.搭建环境 1.1直接从网上下载SpringB ...
最新文章
- 分布式与人工智能课程(part13)--模型验证
- 阿里巴巴对Java编程【控制语句】的规约
- 作为JBoss AS 7模块运行Drools 5.4.0 Final
- 追加的英文计算机,Latex同时添加中英文摘要
- mysql mha好吗_MySQL高可用方案MHA的一些总结和思考
- Python+OpenCV:摄像机标定(Camera Calibration)
- 机器学习--支持向量机(二)拉格朗日乘子法详解
- javac 与java_javac和参数用法java命令的-d -cp
- 带你过一遍:廖雪峰大神Git教程(建议收藏)
- BeanUtils与PropertyUtils的常用方法
- FPGA——sdram控制器1
- 社区论坛小程序开发制作(同城圈子小程序)
- JavaScript:实现返回格式化的电话号码的字符串算法(附完整源码)
- Python实现遗传算法求函数最值
- NES神经干细胞标志物抗体检测方案
- A survey on challenges and progresses in blockchain technologies区块链综述
- 干货 | 视频插帧的方案实现与对比~~
- Python股票分析系列——数据整理和绘制.p2
- csgo显示服务器ip,csgo国服躲猫猫IP地址大全及介绍
- sum求和,vag平均数,round四舍五入
热门文章
- php 整数转换为32 位,PHP哈希函数返回一个整数(32位int)(PHP hashing function that returns an integer (32bit int))...
- java怎么给类中的私有变量赋值_Java核心技术笔记分享------第二章 类与对象
- Java面对面向程序设计_语言与文化网课章节测试答案
- 六十八、完成Vue项目推荐和周末游组件,并使用Ajax发起ajax请求
- 九十五、轻松搞定Python中的Excel办公自动化系列
- 三十七、细说Scrapy中的settings设置
- 最新综述:自动驾驶中的多模态三维目标检测
- 岗位内推 | 微软亚洲研究院智能多媒体组招聘实习生
- 基于句子嵌入的无监督文本摘要(附代码实现)
- 追求极致,饮水思源——记旷视与计算机竞赛的故事