• Java后端 学习路线 笔记汇总表【黑马程序员】
  1. MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】【day01】
  2. MyBatis-学习笔记02【02.Mybatis入门案例】
  3. MyBatis-学习笔记03【03.自定义Mybatis框架】
  4. MyBatis-学习笔记04【04.自定义Mybatis框架基于注解开发】【day02】
  5. MyBatis-学习笔记05【05.使用Mybatis完成CRUD】
  6. MyBatis-学习笔记06【06.使用Mybatis完成DAO层的开发】
  7. MyBatis-学习笔记07【07.Mybatis的连接池及事务】【day03】
  8. MyBatis-学习笔记08【08.动态SQL】
  9. MyBatis-学习笔记09【09.Mybatis的多表操作】
  10. MyBatis-学习笔记10【10.JNDI扩展知识】
  11. MyBatis-学习笔记11【11.Mybatis的缓存】【day04】
  12. 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的缓存】相关推荐

  1. [MyBatis学习笔记] 二、Mybatis基本操作及相关标签介绍

    [MyBatis学习笔记] 二.Mybatis基本操作及相关标签介绍 一.Mybatis简介 二.简单的CRUD操作 1.构建SqlSessionFactory (1)编辑mybatis-config ...

  2. mybatis学习笔记-02-第一个mybatis程序

    该视频为狂神说java视频配套笔记(博主自己手打223,日后做个参考223),b站连接:Mybatis最新完整教程IDEA版[通俗易懂]-02-第一个mybatis程序) 文章目录 2.第一个myba ...

  3. Mybatis学习笔记 4:Mybatis 连表查询(一)——一对多关系

    完整代码在这 在查询数据库时,我们经常会遇到多张表联合查询的情况,而Mybatis使连表查询更加简便了,查询出的数据格式非常易于使用,省去了一大部分复杂的代码编写工作,对于关系型数据库来说,数据模型之 ...

  4. Mybatis学习笔记_5、Mybatis动态SQL

    动态 SQL 是 MyBatis 的强大特性之一.MyBatis提供的对SQL语句动态组装的功能解决了开发人员在使用JDBC或其他的框架进行数据库开发时,需要手动拼装SQL的繁琐问题. 动态SQL元素 ...

  5. Mybatis学习笔记——第一天

    Mybatis学习打卡 Mybatis学习笔记---第一天 Mybatis笔记 第一天 一.引言 1. 现有Jdbc的缺陷 2. Mybatis框架 3. 搭建环境 1) 引入jar包 2) 引入配置 ...

  6. 超详细Mybatis学习笔记(可供下载)

    文章目录 1.简介 2.第一个Mybatis程序 搭建环境 编写代码 测试 3.CRUD(增删改查) 3.1.几个属性 3.2.select 3.3.insert 3.4.delete 3.5.upd ...

  7. 【应用篇】MyBatis学习笔记

    MyBatis学习笔记 一 环境配置 1 什么是MyBatis? ​ MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的 JDBC 代码和参 ...

  8. mybatis学习笔记(13)-延迟加载

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...

  9. MyBatis学习笔记(1)—使用篇

    MyBatis学习笔记(1)-使用篇 MyBatis学习笔记(2)-映射关系篇 MyBatis学习笔记(3)-高级映射之一对一映射 Mybatis学习笔记(4)-高级映射之一对多映射 Mybatis学 ...

  10. 【Springboot学习笔记】SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法

    [Springboot学习笔记]SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法 目录 1.搭建环境 1.1直接从网上下载SpringB ...

最新文章

  1. 分布式与人工智能课程(part13)--模型验证
  2. 阿里巴巴对Java编程【控制语句】的规约
  3. 作为JBoss AS 7模块运行Drools 5.4.0 Final
  4. 追加的英文计算机,Latex同时添加中英文摘要
  5. mysql mha好吗_MySQL高可用方案MHA的一些总结和思考
  6. Python+OpenCV:摄像机标定(Camera Calibration)
  7. 机器学习--支持向量机(二)拉格朗日乘子法详解
  8. javac 与java_javac和参数用法java命令的-d -cp
  9. 带你过一遍:廖雪峰大神Git教程(建议收藏)
  10. BeanUtils与PropertyUtils的常用方法
  11. FPGA——sdram控制器1
  12. 社区论坛小程序开发制作(同城圈子小程序)
  13. JavaScript:实现返回格式化的电话号码的字符串算法(附完整源码)
  14. Python实现遗传算法求函数最值
  15. NES神经干细胞标志物抗体检测方案
  16. A survey on challenges and progresses in blockchain technologies区块链综述
  17. 干货 | 视频插帧的方案实现与对比~~
  18. Python股票分析系列——数据整理和绘制.p2
  19. csgo显示服务器ip,csgo国服躲猫猫IP地址大全及介绍
  20. sum求和,vag平均数,round四舍五入

热门文章

  1. php 整数转换为32 位,PHP哈希函数返回一个整数(32位int)(PHP hashing function that returns an integer (32bit int))...
  2. java怎么给类中的私有变量赋值_Java核心技术笔记分享------第二章 类与对象
  3. Java面对面向程序设计_语言与文化网课章节测试答案
  4. 六十八、完成Vue项目推荐和周末游组件,并使用Ajax发起ajax请求
  5. 九十五、轻松搞定Python中的Excel办公自动化系列
  6. 三十七、细说Scrapy中的settings设置
  7. 最新综述:自动驾驶中的多模态三维目标检测
  8. 岗位内推 | 微软亚洲研究院智能多媒体组招聘实习生
  9. 基于句子嵌入的无监督文本摘要(附代码实现)
  10. 追求极致,饮水思源——记旷视与计算机竞赛的故事