【MyBatisPlus】MyBatisPlus
迪丽瓦拉
2025-05-29 23:53:28
0

文章目录

  • 1、MyBatisPlus
  • 2、MyBatisPlus入门案例
  • 3、标准数据层开发
  • 4、DQL编程控制
  • 5、DML编程控制
  • 6、代码生成器

1、MyBatisPlus

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

2、MyBatisPlus入门案例

  • 创建工程时,不再勾选mybatis
    在这里插入图片描述
  • 手动添加mybatisPlus的起步依赖
    在这里插入图片描述
  • 设置jdbc参数(application.yml)
    在这里插入图片描述
  • 制作实体类与表结构,类名与表名对应,属性名与字段名对应
    在这里插入图片描述
  • 定义数据层接口,继承BaseMapper,传入对应的泛型
    在这里插入图片描述
  • 测试类中注入Dao接口,测试功能
    在这里插入图片描述

3、标准数据层开发

标准数据层CRUD功能

在这里插入图片描述


Lombok--简化实体类的开发.
在这里插入图片描述
在这里插入图片描述


标准分页功能制作

  • 设置MP分页拦截器作为Spring管理的Bean
    在这里插入图片描述

  • 执行分页查询
    在这里插入图片描述

  • 想看封装背后所执行的SQL,可以开启日志来调试
    在这里插入图片描述

4、DQL编程控制

条件查询–设置查询条件

封装的条件查询的方法中,设置查询条件的三种方式:

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

当查询条件变多的时候,支持链式编程,使用and和or进行连接
在这里插入图片描述

条件查询—null值的处理

在这里插入图片描述
查询时,某个值未传,若将null直接拿进SQL,则影响最终的查询结果,解决思路如下:

  • 使用if判断控制
    在这里插入图片描述
  • 做为方法的第一个condition参数
    在这里插入图片描述

查询投影

在这里插入图片描述

查询条件设置

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

映射匹配兼容性

case1:表字段与属性字段不同步

在这里插入图片描述
解决思路:

在这里插入图片描述
相关注解:

在这里插入图片描述

case2:实体类中定义了数据库中未定义的属性

在这里插入图片描述
解决思路:

在这里插入图片描述
相关注解:
在这里插入图片描述

case3:采用默认查询,开放了更多的字段的查看权限,如password

在这里插入图片描述
解决思路:

在这里插入图片描述
相关注解:

在这里插入图片描述

case4:表名与类名设计不一致

解决思路:

在这里插入图片描述
相关注解:

在这里插入图片描述

5、DML编程控制

id生成策略控制

在这里插入图片描述
@TableId注解

在这里插入图片描述
如果每个属性都加注解,会很烦,

在这里插入图片描述

提炼成一个全局配置写在application.yml文件中:
在这里插入图片描述

多记录删除与查询:

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

逻辑删除:

如果将某些数据直接从数据库中删除,如1号员工离职:
在这里插入图片描述
此时,数据最终汇总出问题,因此考虑逻辑删除,即用字段标记一下:

在这里插入图片描述

逻辑删除案例:
  • 数据库中添加逻辑删除标记字段
    在这里插入图片描述
  • 实体类中添加相应字段,并使用注解@TableLogic设定当前字段为标记逻辑删除字段
    在这里插入图片描述
  • 在application.yml文件中配置逻辑删除字面值
    在这里插入图片描述
    此时,删除数据实际是在执行update语句:
    在这里插入图片描述

乐观锁:

业务场景–并发现象:

在这里插入图片描述

乐观锁案例:
  • 数据库中添加锁标记字段
    在这里插入图片描述
  • 实体类中添加相应的属性,并标记为锁字段
    在这里插入图片描述
  • 配置乐观锁拦截器,实现锁机制对应的动态SQL的拼接
    在这里插入图片描述
  • 使用乐观锁机制,在执行update修改前必须先获取到对应数据的version方可继续进行
    在这里插入图片描述

6、代码生成器

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

看完以上的对比,抽取出模板后,可以知道代码生成器的基本思路:

在这里插入图片描述

代码生成器的用法:
  • 引入需要的依赖:
    在这里插入图片描述

  • 创建代码生成器对象,说明相关配置后,执行execute方法
    在这里插入图片描述

  • 数据源配置
    在这里插入图片描述

  • 全局配置
    在这里插入图片描述

  • 包相关配置
    在这里插入图片描述

  • 策略配置
    在这里插入图片描述

相关内容