MyBatis-Plus(二)

视频链接:https://www.bilibili.com/video/BV12R4y157Be/?spm_id_from=333.337.search-card.all.click&vd_source=9545770e4a2968c05878ffac8589ec6c
视频选集:P29— P57

1.条件构造器

1.1 简介

在这里插入图片描述
在这里插入图片描述

1.2 组装查询条件

测试类:
在这里插入图片描述
在这里插入图片描述

1.3 组装排序条件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 组装删除条件

在这里插入图片描述
在这里插入图片描述

1.5 使用QueryWrapper实现修改功能

在这里插入图片描述
在这里插入图片描述

1.6 条件的优先级

在这里插入图片描述
在这里插入图片描述

1.7 组装select字句

在这里插入图片描述

1.8 组装子查询

SQL语句演示:
在这里插入图片描述
条件构造器方法:
在这里插入图片描述
在这里插入图片描述

1.9 使用UpdateWrapper实现修改功能

UpdateWrapper两个功能:

  1. 设置修改的条件
  2. 设置当前要修改的字段
    在这里插入图片描述
    在这里插入图片描述

1.10 模拟开发中组装条件的情况

在这里插入图片描述
在这里插入图片描述

1.11 使用condition组装条件

在这里插入图片描述
在这里插入图片描述

1.12 LambdaQueryWrapper

防止字段名写错
在这里插入图片描述

1.13 LambdaUpdateWrapper

防止字段名写错
在这里插入图片描述

2.插件

2.1 分页插件的配置和使用

MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能
在这里插入图片描述
测试类:
在这里插入图片描述
在这里插入图片描述

2.2 分页相关数据获取

getRecords【获取记录,获取数据】、getPages【获取总页数】、getTotal【获取总记录数】、hasNext【获取有没有下一页】、hasPrevious【获取是否有上一页】
在这里插入图片描述

2.3 自定义分页功能

在这里插入图片描述
配置文件:【为了在resultType中使用类型别名】
在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述

3.乐观锁和悲观锁

场景:一件商品,成本价是80元,售价是100元。老板先是通知小李,说你去把商品价格增加50元。小李正在玩游戏,耽搁了一个小时。正好一个小时后,老板觉得商品价格增加到150元,价格太高,可能会影响销量。又通知小王,你把商品价格降低30元。
此时,小李和小王同时操作商品后台系统。小李操作的时候,系统先取出商品价格100元;小王也在操作,取出的商品价格也是100元。小李将价格加了50元,并将100+50=150元存入了数据库;小王将商品减了30元,并将100-30=70元存入了数据库。是的,如果没有锁,小李的操作就完全被小王的覆盖了。
现在商品价格是70元,比成本价低10元。几分钟后,这个商品很快出售了1千多件商品,老板亏1万多。

乐观锁与悲观锁:

  • 上面的故事,如果是乐观锁,小王保存价格前,会检查下价格是否被人修改过了。如果被修改过了,则重新取出的被修改后的价格,150元,这样他会将120元存入数据库。
  • 如果是悲观锁,小李取出数据后,小王只能等小李操作完之后,才能对价格进行操作,也会保证最终的价格是120元。

3.1 模拟修改冲突

创建对象:
在这里插入图片描述
创建接口:
在这里插入图片描述

测试:
在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述

3.2 MyBatis-Plus的乐观锁插件

修改实体类:
在这里插入图片描述
配置类中设置:
在这里插入图片描述
展示:
小李在改的时候,版本号改为1了
在这里插入图片描述

3.3 优化修改流程

由于上面代码只有小李的执行了,小王的没有执行,于是进行优化
在这里插入图片描述

在这里插入图片描述

4.通用枚举

创建一个枚举对象:【还有构造方法】
在这里插入图片描述
在配置文件中:
在这里插入图片描述

在User中表示:
在这里插入图片描述
测试:
在这里插入图片描述

5.代码生成器

在这里插入图片描述
创建一个测试类:把下面代码放入其中
在这里插入图片描述
直接运行:
在这里插入图片描述
生成:
在这里插入图片描述

在这里插入图片描述

其中的文件:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.多数据源

适用于多种场景:纯粹多库、读写分离、一主多从、混合模式等
目前我们就来模拟—个纯粹多库的一个场景,其他场景类似
场景说明:
我们创建两个库,分别为: mybatis_plus (以前的库不动)与mybatis_plus_1(新建),将mybatis_plus库的product表移动到mybatis_plus_1库,这样每个库一张表,通过一个测试用例分别获取用户数据与商品数据,如果获取到说明多库模拟成功

模拟多数据源环境

在这里插入图片描述
在这里插入图片描述
2.引入依赖
在加上下面的注解:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

定义User实体类:
在这里插入图片描述

在这里插入图片描述
定义Product实体类:
在这里插入图片描述
在这里插入图片描述
定义接口:
在这里插入图片描述
在这里插入图片描述
注册:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
定义service接口:
在这里插入图片描述
实现类:
在这里插入图片描述
定义service接口:
在这里插入图片描述
实现类:
在这里插入图片描述
测试类:
在这里插入图片描述
展示:
在这里插入图片描述
注意:
在这里插入图片描述

7.MyBatisX插件

  • MyBatis-Plus为我们提供了强大的mapper和service模板,能够大大的提高开发效率
  • 但是在真正开发过程中,MyBatis-Plus并不能为我们解决所有问题,例如一些复杂的SQL,多表联查,我们就需要自己去编写代码和SQL语句,我们该如何快速的解决这个问题呢,这个时候可以使用MyBatisX插件
  • MyBatisX—款基于IDEA的快速开发插件,为效率而生。
  • MyBatisX插件用法: https://baomidou.com/pages/ba5b24/

7.1 安装

添加插件:
在这里插入图片描述
创建映射文件:
在这里插入图片描述

7.2 MyBatisX代码快速生成【实体类、mapper接口、映射文件、service接口以及实现类】

先连接数据库才能使用这个功能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果:
在这里插入图片描述

7.3 快速生成CRUD

1.添加功能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.删除功能
在这里插入图片描述
根据多个条件删除
在这里插入图片描述
在这里插入图片描述
3.修改功能

在这里插入图片描述
在这里插入图片描述
4.查询功能
在这里插入图片描述

在这里插入图片描述
5.排序功能
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值