mybatis延迟加载,缓存机制,逆向工程,注解开发

一 : 延迟加载

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

二 : 缓存机制

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

三 : 逆向工程

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

  1. 添加依赖
    在这里插入图片描述
  2. 编写入口函数
    在这里插入图片描述
  3. 编写配置文件
    在这里插入图片描述
    (三) 注意
  4. 逆向工程一般只在项目开发初期的时候使用, 版本迭代的时候严禁使用
  5. 只能做单表操作, 复杂的功能还是需要我们编写复杂的sql语句来实现

四 : 注解开发

(一) 新增
在这里插入图片描述
(二) 修改
在这里插入图片描述
(三) 删除
在这里插入图片描述
(四) 查询所有
在这里插入图片描述
(五) 根据id查询
在这里插入图片描述
(六) 对多
在这里插入图片描述
在这里插入图片描述
(七) 对一
在这里插入图片描述
在这里插入图片描述
(八) 小结

  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 --> 包名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值