天天看点

8.mybatis(延迟加载、缓存、注解开发)

  1. Mybatis延迟加载策略

(1)何为延迟加载(按需加载)?

1.   什么时候?用什么时候立即发起查询。

指的是我们真正使用数据时,才去数据库查询,而不是一上来就去把数据显示出来。

2.   mybatis的延迟加载策略

8.mybatis(延迟加载、缓存、注解开发)
8.mybatis(延迟加载、缓存、注解开发)
8.mybatis(延迟加载、缓存、注解开发)

如果在测试中不打印,那么它将会延迟加载,何时输出何时加载。

3.什么时候用延迟?什么时候用立 即?

一对多和多对多,更适用于延迟加载。

多对一和一对一,更适用于立即加载。

(3)使用Assocation实现延迟加载

(4)使用Collection实现延迟加载

  1. Mybatis缓存

(1)缓存概述

0.1.1什么是缓存?

存在于内存中的临时数据,而redis是存在于硬盘中的。并且redis可以定时销毁,而这个缓存没有这个功能。

0.1.2.为什么用缓存?

减少和关系型数据库的交互次数,提高执行效率

0.1.3什么样的数据能用,什么样的数据不能用?

适用的:经常查询,且不经常改变数据。数据的正确与否对最终结果影响不大的。

不使用:敏感数据,对最终影响结果影响很大的,比如:股市牌价,银行汇率,商品的库存等。

Mybatis分为两种缓存:看图如下分并解释

8.mybatis(延迟加载、缓存、注解开发)

(2)一级缓存

指的是sqlSession对象的缓存。临时数据存在于sQlsessiofactory中,如果sQlsessiofactory不在了,以及缓存也就消失了。

但是存活时间太短。

(3)二级缓存

二级缓存是mapper映射级别的缓存,多个SqlSession去操作同一个Mapper映射的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。

Mapper缓存消失了,但是sqlsession没有消失。

  1. Mybatis注解开发

(1)使用mybatis注解实现基本curd

8.mybatis(延迟加载、缓存、注解开发)

如果不删除xml,那就会与java中的方法发生冲突,报错

8.mybatis(延迟加载、缓存、注解开发)

(2)使用注解实现复杂关系映射开发

使用QueryVo深入

参数深入

返回值深入

       /002F

Mybatis课程总结: