8.mybatis(延迟加载、缓存、注解开发)
- Mybatis延迟加载策略
(1)何为延迟加载(按需加载)?
1. 什么时候?用什么时候立即发起查询。
指的是我们真正使用数据时,才去数据库查询,而不是一上来就去把数据显示出来。
2. mybatis的延迟加载策略
如果在测试中不打印,那么它将会延迟加载,何时输出何时加载。
3.什么时候用延迟?什么时候用立 即?
一对多和多对多,更适用于延迟加载。
多对一和一对一,更适用于立即加载。
(3)使用Assocation实现延迟加载
(4)使用Collection实现延迟加载
- Mybatis缓存
(1)缓存概述
0.1.1什么是缓存?
存在于内存中的临时数据,而redis是存在于硬盘中的。并且redis可以定时销毁,而这个缓存没有这个功能。
0.1.2.为什么用缓存?
减少和关系型数据库的交互次数,提高执行效率
0.1.3什么样的数据能用,什么样的数据不能用?
适用的:经常查询,且不经常改变数据。数据的正确与否对最终结果影响不大的。
不使用:敏感数据,对最终影响结果影响很大的,比如:股市牌价,银行汇率,商品的库存等。
Mybatis分为两种缓存:看图如下分并解释
(2)一级缓存
指的是sqlSession对象的缓存。临时数据存在于sQlsessiofactory中,如果sQlsessiofactory不在了,以及缓存也就消失了。
但是存活时间太短。
(3)二级缓存
二级缓存是mapper映射级别的缓存,多个SqlSession去操作同一个Mapper映射的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。
Mapper缓存消失了,但是sqlsession没有消失。
- Mybatis注解开发
(1)使用mybatis注解实现基本curd
如果不删除xml,那就会与java中的方法发生冲突,报错
(2)使用注解实现复杂关系映射开发
使用QueryVo深入
参数深入
返回值深入
/002F
Mybatis课程总结: