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

MybatisPlus的基础使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 1、基础crud
    • 增加
      • insert()方法:
    • 删除
    • 修改
    • 查询
  • 2、分页查询
    • 配置分页拦截器
    • 使用分页查询功能
    • 开启MP日志
      • 在yml配置文件中配置日志
      • 查看日志
  • 3、条件查询
    • 条件添加方式
      • 方法一
      • 方法二
      • 方法三
    • 多条件查询
      • 多条件and
      • 多条件or
  • 总结


前言

mybatisplus在mybatis的基础上进行额外的封装,可以极大的提升我们的开发效率。


1、基础crud

增加

insert()方法:

调用baseMapper接口中的**insert()**方法,并传入实体类对象,可以快速在数据库中创建记录,一般设置传入的实体类对象的id值为null,由数据库自动生成id值
请添加图片描述

请添加图片描述

删除

使用**deleteById()**方法传入id值进行删除
请添加图片描述

修改

通过**updateById()**方法传入实体类修改,只修改所传实体类对象中存在的数据
请添加图片描述

查询

查询所有用**selectList()**方法,返回一个集合对象,遍历即可
请添加图片描述

查询单个数据用**selectById()**方法,返回一个实体类对象
请添加图片描述

2、分页查询

调用mybatisplus提供的basemapper接口中的selectPage()方法就可以使用分页查询功能,但在使用分页查询功能前,要先添加分页拦截器,否则无法正常查询数据:
为什么要添加分页拦截器:
执行分页查询,相当于使用select *from ? limit ?这条sql语句进行查询,默认先使用select*from?,而**limit ?**这一部分需要拦截器进行添加,也就是说需要拦截器来在执行前添加分页功能代码,否则就变成查询全部了
请添加图片描述

并且这个分页功能使用到mp提供的分页插件,而mp中的插件都要先在配置类中进行注册后才可以使用
请添加图片描述

配置分页拦截器

请添加图片描述

使用分页查询功能

查询到的结果会被封装进你传入的IPage对象中,再调用该对象方法就可以获取对应数据
请添加图片描述

开启MP日志

开启mybatisplus的日志,我们可以在日志中看到mybatis的查询过程。

在yml配置文件中配置日志

请添加图片描述

查看日志

这里查看分页查询的日志:
请添加图片描述

可以看出:这里的分页查询是分段进行的,先查询总记录数,再从中根据方法参数查询具体数据

3、条件查询

条件添加方式

方法一

添加查询条件需要用到QueryWrapper对象,调用其中的方法,并将条件传入其中
请添加图片描述

调用的方法决定判断条件是什么(比如大于、小于、等于……),传入的参数值决定判断的条件值是什么。
因此为了满足需要,有如下不同方法可以选择:
请添加图片描述

每个方法的具体含义可以到官网查看:

方法二

使用lambda表达式来决定判断的字段:
请添加图片描述

方法三

算是对方法二的简化写法,引入LambdaQueryWrapper对象代替QueWrapper对象,和方法二一样,用lambda来指定字段名,同时省略了方法二中的**lambda()**方法:
请添加图片描述

多条件查询

可以一次添加多个查询条件

多条件and

查询条件连接表示要查询同时满足这些条件的记录
请添加图片描述

多条件or

在条件之间插入or()方法,表示查询满足其中一个条件的记录:
请添加图片描述


总结

本章中介绍了如何使用mybatisplus进行一些常用的增、删、改、查操作。


http://www.kler.cn/a/395736.html

相关文章:

  • Java JDBC教程
  • 一文说清libc、glibc、glib的发展和关系
  • 深入探索 React Hooks:原理、用法与性能优化全解
  • 基于ECS实例搭建Hadoop环境
  • 力扣-Mysql-3308- 寻找表现最佳的司机(中等)
  • CTFHub每日练习
  • MySQL数据库入门到大牛尚硅谷宋红康老师笔记 基础篇 part 2
  • CICD持续集成与持续交付
  • go-bindata
  • 酷炫的鼠标移入效果(附源码!!)
  • Web基础1 -- HTML(超文本标记语言)
  • Python调用API翻译Excel中的英语句子并回填数据
  • 3. Spring Cloud Eureka 服务注册与发现(超详细说明及使用)
  • 计算机网络中的域名系统(DNS)及其优化技术
  • 电子应用产品设计方案-9:全自动智能马桶系统设计方案
  • 面试问答:什么是滑动窗口
  • 一文说清:C静态库与动态库的区别
  • C#桌面应用制作计算器
  • 开源项目推荐——OpenDroneMap无人机影像数据处理
  • Oracle 单机及 RAC 环境 db_files 参数修改
  • Linux基础—pxe装机
  • 【拉箱子——模拟+DFS】
  • JAVA学习-练习试用Java实现“网络编程”
  • LlamaFactory介绍
  • Java爬虫:获取商品历史价格信息 API 数据
  • 英伟达基于Mistral 7B开发新一代Embedding模型——NV-Embed-v2