一 : 延迟加载

(一) 概述
需要用到数据的时候就加载, 不需要的时候就不加载
懒加载
(二) 优缺点
优点: 因为嵌套查询是发送两条sql, 如果关联的数据不需要, 那么则不需要发送第二条sql, 相较于连表查询性能提高很多, 因为单表查询的速度是优于连表查询的
缺点: 如果关联数据需要, 第二条sql就会被发送, 由于第二张表的数据量很大, 会造成响应时间过长, 用户体验不佳
(三) 小建议
对多的情况: 采用懒加载
对一的情况: 可以采用即刻加载
(四) 实现
mybatis延迟加载,缓存机制,****,注解开发
按需加载, 如果只是需要用户信息, 则不会去查询订单信息, 如果需要订单信息, 则会查
mybatis延迟加载,缓存机制,****,注解开发
fetchType的优先级要高于lazyLoadingEnabled

二 : 缓存机制

缓存的目的: 降低数据库压力
Mybatis 使用到了两种缓存:本地缓存(local cache)和二级缓存(second level cache)。
(一) 本地缓存
本地缓存也称为一级缓存
每当一个新 session 被创建,MyBatis 就会创建一个与之相关联的本地缓存。任何在 session 执行过的查询结果都会被保存在本地缓存中,所以,当再次执行参数相同的相同查询时,就不需要实际查询数据库了。
本地缓存将会在做出修改、事务提交或回滚,以及关闭 session 时清空。
本地缓存的生命周期等同于session的生命周期
本地缓存无法完全关闭(禁用)
手动清空本地缓存
mybatis延迟加载,缓存机制,****,注解开发
(二) 二级缓存
mybatis延迟加载,缓存机制,****,注解开发
在需要实现二级缓存的配置文件中添加标签
mybatis延迟加载,缓存机制,****,注解开发
二级缓存需要做数据流转, 所以需要我们的实体类实现序列化接口
mybatis延迟加载,缓存机制,****,注解开发
需要关闭sqlSession才能实现二级缓存, 也就是说, 我们查出来的girl的数据, 做的是数据转移而不是复制

三 : ****

(一) 作用
可以根据数据库生成pojo, mapper接口, mapper映射配置文件
只能做单表操作,
连表查询, 嵌套查询, 懒加载, 缓存优化仍然需要我们自己手动实现
(二) 实现

  1. 添加依赖
    mybatis延迟加载,缓存机制,****,注解开发
  2. 编写入口函数
    mybatis延迟加载,缓存机制,****,注解开发
  3. 编写配置文件
    mybatis延迟加载,缓存机制,****,注解开发
    (三) 注意
  4. ****一般只在项目开发初期的时候使用, 版本迭代的时候严禁使用
  5. 只能做单表操作, 复杂的功能还是需要我们编写复杂的sql语句来实现

四 : 注解开发

(一) 新增
mybatis延迟加载,缓存机制,****,注解开发
(二) 修改
mybatis延迟加载,缓存机制,****,注解开发
(三) 删除
mybatis延迟加载,缓存机制,****,注解开发
(四) 查询所有
mybatis延迟加载,缓存机制,****,注解开发
(五) 根据id查询
mybatis延迟加载,缓存机制,****,注解开发
(六) 对多
mybatis延迟加载,缓存机制,****,注解开发
mybatis延迟加载,缓存机制,****,注解开发
(七) 对一
mybatis延迟加载,缓存机制,****,注解开发
mybatis延迟加载,缓存机制,****,注解开发
(八) 小结

  1. 常用注解
    @Select
    @Insert
    @Update
    @Delete
    @Results
    @Result
    @One
    @Many

  2. 注解适用于处理简单的功能

五 : 配置文件回顾

(一) 别名
typeAliases
typeAliase 类的全限定名 --> 别名
Package --> 包名
(二) 环境
transactionManager
Jdbc
Managed —> 啥也没干

dataSource – type
Unpooled
Pooled —> 连接池
JNDI --> 几乎不用
(三) 映射器
Resource
Url
Class
Package --> 包名

相关文章:

  • 2021-07-06
  • 2021-12-06
  • 2022-12-23
  • 2022-01-06
  • 2021-07-24
  • 2021-12-23
猜你喜欢
  • 2021-06-30
  • 2021-10-05
  • 2021-05-04
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-12-07
相关资源
相似解决方案