Mybatis---入门4--mybatis的缓存和注解开发--mybatis的加载时机(查询的时机)--mybatis的一级缓存和二级缓存--mybatis的注解开发(单表CRUD,多表查询)

在这里插入图片描述

1. mybatis的延迟加载

在这里插入图片描述

什么是延迟加载?

		在真正使用数据时才发起查询,不用的时候不查询,按需加载(懒加载)。

什么是立即加载?

	不管用不用,只要调用方法, 马上发起查询。 

在这里插入图片描述

如何实现延迟加载?

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2. mybatis的缓存

什么是缓存

存在于内存中的临时数据。  

为什么使用缓存

减少数据库交互次数,提高执行效率。

什么样的数据能使用缓存,什么样的数据不能使用缓存

适用于缓存:经常查询的并且不经常改变的。 数据的正确与否最终结果影响不大。 例如:商品的库存。
不适用于缓存:经常改变的。 数据的正确与否对最终结果影响很大。例如: 银行的汇率, 股市的牌价。 

mybatis的一级缓存和二级缓存

**一级缓存**:它指的是Mybatis中SqlSession对象的缓存。当执行完查询之后,查询的结果会同时存入到SqlSession为我们提供的一块区域中。
                 该区域的结构是个Map. 当再查询同样的数据,mybatis会先去SqlSession中查询是否有, 有的话直接拿出来用。 
                同时,当SqlSession对象消失时,mybatis的一级缓存就消失。 调用sqlSession.clearCache();方法

在这里插入图片描述

**二级缓存**:它指的是Mybatis中SqlSessionFactory对象的缓存。由同一个SqlSessionFactory对象创建的SqlSession共享其缓存。 

二级缓存的使用步骤:

            第一步: 让mybatis支持二级缓存(在SqlMapConfig.xml中配置) 
<settings>
        <setting name="cacheEnabled" value="true"/>
    </settings>
			第二步: 让当前的映射文件支持二级缓存(在IUserDao.xml配置)
   <!--开始user支持二级缓存-->
    <cache/>
			第三步: 让当前的操作支持二级缓存(在select 标签中配置)
   <select id="findById" parameterType="INT" resultType="user" useCache="true">
       SELECT  * FROM user WHERE id=#{userId}
    </select>

注意: 二级缓存存放的是数据,而不是对象。
在这里插入图片描述

3. mybatis的注解开发

环境搭建

单表CRUD操作(代表DAO方式)

多表查询操作

缓存的配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值