Java-MyBatis延迟加载、缓存和注解开发-第48节

学习目标:

  • 理解什么是立即加载,什么是延迟加载
  • 理解缓存的概念,掌握使用缓存的关键技术
  • 熟练使用注解开发

学习内容:

一、MyBatis的延迟加载
1、什么是延迟加载
  • 使用数据才查询,不用不查询,按需加载(懒加载)
  • 一对多,多对多
2、什么是立即加载
  • 调用就查询
  • 多对一,一对一
二、mybatis的缓存
1、什么是缓存
  • 存在于内存中的临时数据
2、为什么使用缓存
  • 减少和数据库的交互次数,提高执行效率
3、什么样的数据使用缓存,什么样的数据不能使用
  • 适用于缓存
    • 经常查询并且不经常修改
    • 数据的正确与否对最终结果影响不大
  • 不适用于缓存
    • 经常改变的数据
    • 数据的正确与否对最终结果影响很大,商品库存、银行汇率
4、MyBatis中的一级缓存和二级缓存
  • 一级缓存:
    • MyBatis中的SqlSession对象的缓存
    • 执行查询后,结果存入sqlSession对象提供的区域中
    • 该区域的结构是map,再次查询时会首先去sqlSession中查找,如果存在直接使用
    • sqlSession关闭,一级缓存同时消失
    • 清空一级缓存:调用sqlSession的修改,添加,删除,commit,close,clearCache
  • 二级缓存
    • 指SqlSessionFactory对象的缓存,有同一个SqlSessionFactory对象创建的SqlSession对象共享其缓存
    • 二级缓存的使用步骤
      • 让MyBatis框架支持二级缓存(在SqlMapConfig.xml中配置)
			<settings>
				<setting name="cacheEnabled" value="true"/>
			</settings>
  • 让当前的映射文件支持二级缓存(在UserDao.xml中配置)
<cache/>
  • 在当前的操作支持二级缓存(在select标签中配置)
	<select id="findAll" resultMap="userAccountMap" useCache="true">
		SELECT * FROM USER
	</select>
三、MyBatis的注解开发
1、环境搭建
2、单表CRUD操作(代理DAO方式)
3、多表查询操作
4、缓存的配置

学习产出:

项目文件:请点击获取压缩包
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值