当前位置: 首页 > news >正文

SpringCloud启动——MybatisPlus(MP)

目录

MybatisPlus

快速入门

前置步骤

代码演示

常用注解

常见配置

核心功能

条件构造器

自定义SQL

IService接口

基本用法

基本业务

复杂业务

IService接口中的Lambda方法

IService批量新增

扩展功能

代码生成

静态工具

逻辑删除

枚举处理器

JSON处理器

插件功能

分页插件

通用分页实体


b站上黑马程序员的课程笔记

MybatisPlus

对Mybatis框架的一个升级。但是它并不是来替代Mybatis这个技术的,而是互相搭配来干活的。

项目引入MybatisPlus不会对现有的工程产生影响,原来基于Mybatis的代码依然可以照常运行。

快速入门

之前我们已经学习过了Mybatis,不管是XML映射文件也好,还是自己在对应的方法上面用注解来写sql语句也好,它都需要我们自己写Sql语句,而使用MybatisPlus这些语句就完全可以不用自己写了。

前置步骤

使用MybatisPlus就要引入它的依赖:

BaseMapper<泛型:要操作的实体类的类型>接口中有很多方法,如下,很简单,看见名字就能知道他的用法。

代码演示

引入了MybatisPlus之后,UserMapper里面就可以什么都不用写,如下:(可以直接在Service中调用BaseMapper接口中的方法就能完成增删改查的操作)

MP是怎么实现增删改查的,我们还什么都没写,他怎么知道我们要访问哪张表呢?又是怎么知道表中有哪些信息呢?

常用注解

首先不用配置,但是要遵守约定:(命名要严格按照数据库中的字段名以及表明来命名,这样MybatisPlus才能识别)

如果不遵守约定:(如下注解,可以解决这个问题,变量前面有java底层会把is自动去掉,数据库关键字冲突(如order by))(IdType的类型:Auto自增长是数据库自动增长,Input是自己指定id,ASSIGN_ID是java来自动分配id;如果不指定类型,那么就默认是ASSIGN_ID雪花算法来得到id,所以必须指定id)

常见配置

第一个:作用是将来在定义mapper.xml里面的语句的时候,如果需要定义实体类的类型,那么他就不需要写全路径名了,直接写类的简化名就可以了。

第二个:指定xml文件地址,因为mp更擅长单表的查询,要是涉及到了多表查询,我们还是需要自己编写sql语句。

id_type:注解优先级大于这个全局配置的优先级。

目录:

核心功能

条件构造器

AbstractWrapper这个类提供了where后面的方法(比如等于、模糊匹配like等等),UpdateWrapper是更新,QueryWrapper是查询。

在测试类中,示例代码:(查询名字中带有o的,并且存款大于等于1000元的)

两个更新(1、把用户名为jack的人的存款改为2000。(用new了查询QueryWrapper类,因为没有用到updateWrapper类中的方法,只更新了一个)2、把id为1,2和4的人的存款减200)

除了这些,还有上面的图片中的,AbstractLamdaWrapper,LamdaUpdateWrapper以及LamdaQueryWrapper其实和这些类的方法以及用法都差不多,只不过我们刚才演示的这些代码属于硬编码。

代码示例

自定义SQL

前面条件构造器的写法,没有在mapper中获得数据,是在测试类中演示,等于说是在业务层service中来获得这个数据的。但是在有的企业开发中是不允许的,获取数据只能在mapper中,这时该怎么办呢?(如下where语句都很复杂,但是用mp自动生成就很简单一个或者两个方法就完成了,还有就是查询COUNT(id) AS total查询数量并且起别名mp就做不到了)这就需要自定义SQL来完成了。

代码示例:

http://www.dtcms.com/a/523882.html

相关文章:

  • 图解Java链表反转:迭代法详解
  • SOGS压缩技术
  • SQLiteStudio下载安装图解教程(附安装包)
  • 【图像超分】论文复现:轻量化超分 | RLFN的Pytorch源码复现,跑通源码,整合到EDSR-PyTorch中进行训练、测试
  • 吉利汽车携手阿里云函数计算,打造新一代 AI 座舱推理引擎
  • 基于mormot.net.async.pas实现一个纯粹的Socket Server
  • FastReport .NET 2026.1 全新发布: 统一Demo中心、全新Ribbon界面、Excel公式导出、Word图像质量设置等重磅升级!
  • 网站后台上传图片脚本错误个人博客大全
  • 郑州水晶奖杯制作wordpress加载优化
  • 【计算机网络笔记】第二章 应用层 (Application Layer)
  • 东营聊城网站建设seo门户网站建设
  • DigitalOcean Gradient™ 平台上线 fal 四款多模态 AI 模型:快速生成图像与音频
  • 5、服务器互连技术(小白入门版)
  • 我爱学算法之—— 分治-归并
  • 济南高新区 网站制作wordpress直接购买
  • 织梦网站首页幻灯片不显示新华美玉官方网站在线做
  • 蓝色星球如何打造能与企业共同进化的灵活系统
  • 【问题】在VSCode中设置conda的Python环境
  • NGINX 负载均衡应用实战:从配置到策略的深度解析
  • 关于buildroot文件系统中rootfs的内容,该怎么增删(瑞芯微rv1126b)
  • Qt 入门简洁笔记:信号与槽
  • 算法入门---专题二:滑动窗口2(最大连续1的个数,无重复字符的最长子串 )
  • 手机摄像头如何识别体检的色盲检查图的数字和图案(下)
  • 政务系统信创改造中,金仓日志如何满足等保2.0三级审计要求
  • 记录一个监控网卡某个IP发送流量
  • Python-UnitTest框架
  • 模型-模型压缩:量化、剪枝、蒸馏、二值化
  • UE5 蓝图-12:pawn蓝图,轴映射-鼠标右键,补充轴映射与操作映射的区别。相机的旋转俯仰逻辑,伸缩逻辑,浮点差值函数 FInterpTo;
  • Vcenter7使用主机配置文件重置ESXI主机 root 密码
  • STL 容器:List