【MybatisPlus快速入门】(2)SpringBoot整合MybatisPlus 之 标准数据层开发 代码示例

目录

  • 1 标准CRUD使用
  • 2 新增
  • 3 删除
  • 4 修改
  • 5 根据ID查询
  • 6 查询所有
  • 7 MyBatis-Plus CRUD总结

之前我们已学习MyBatisPlus在代码示例与MyBatisPlus的简介,在这一节中我们重点学习的是数据层标准的CRUD(增删改查)的实现与分页功能。代码比较多,我们一个个来学习,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》
在这里插入图片描述

1 标准CRUD使用

对于标准的CRUD功能都有哪些以及MP都提供了哪些方法可以使用呢?
我们先来看张图:
在这里插入图片描述
对于这张图的方法,我们挨个来演示下:
首先说下,案例中的环境就是咱们入门案例的内容,第一个先来完成新增功能

2 新增

在进行新增之前,我们可以分析下新增的方法:

int insert (T t)
  • T:泛型,新增用来保存新增数据
  • int:返回值,新增成功后返回1,没有新增成功返回的是0

在测试类中进行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testSave() {User user = new User();user.setName("j0ck");user.setPassword("123456");user.setAge(4112);user.setTel("18812345678");userDao.insert(user);}
}

执行测试后,数据库表中就会添加一条数据。
在这里插入图片描述

3 删除

在进行删除之前,我们可以分析下删除的方法:

int deleteById (Serializable id)
  • Serializable:参数类型
    • 思考:参数类型为什么是一个序列化类?
      在这里插入图片描述
      从这张图可以看出,
  • String和Number是Serializable的子类,
  • Number又是Float,Double,Integer等类的父类,
  • 能作为主键的数据类型都已经是Serializable的子类,
  • MP使用Serializable作为参数类型,就好比我们可以用Object接收任何数据类型一样。
  • int:返回值类型,数据删除成功返回1,未删除数据返回0。
  • 在测试类中进行新增操作:
@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testDelete() {userDao.deleteById(1401856123725713409L);}
}

4 修改

在进行修改之前,我们可以分析下修改的方法:

int updateById(T t);
  • T:泛型,需要修改的数据内容,注意因为是根据ID进行修改,所以传入的对象中需要有ID属性值
  • int:返回值,修改成功后返回1,未修改数据返回0
    在测试类中进行新增操作:
@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testUpdate() {User user = new User();user.setId(1L);user.setName("Tom888");user.setPassword("tom888");userDao.updateById(user);}
}

说明:修改的时候,只修改实体对象中有值的字段。

5 根据ID查询

在进行根据ID查询之前,我们可以分析下根据ID查询的方法:

T selectById (Serializable id)
  • Serializable:参数类型,主键ID的值
  • T:根据ID查询只会返回一条数据

在测试类中进行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testGetById() {User user = userDao.selectById(2L);System.out.println(user);}
}

6 查询所有

在进行查询所有之前,我们可以分析下查询所有的方法:

List<T> selectList(Wrapper<T> queryWrapper)
  • Wrapper:用来构建条件查询的条件,目前我们没有可直接传为Null
  • List:因为查询的是所有,所以返回的数据是一个集合

在测试类中进行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testGetAll() {List<User> userList = userDao.selectList(null);System.out.println(userList);}
}

我们所调用的方法都是来自于DAO接口继承的BaseMapper类中。里面的方法有很多,我们后面会慢慢
去学习里面的内容。

7 MyBatis-Plus CRUD总结

MybatisPlus是一个基于Mybatis的增强工具,提供了很多方便开发的功能,其中包括CURD(增删改查)操作。以下是MybatisPlus的CURD操作的总结:

  1. 增加操作(Create):

    • 使用MybatisPlus的Mapper接口的insert方法:mapper.insert(entity);
    • 使用MybatisPlus的BaseMapper接口的insert方法:baseMapper.insert(entity);
  2. 查询操作(Retrieve):

    • 使用MybatisPlus的Mapper接口的selectById方法:mapper.selectById(id);
    • 使用MybatisPlus的BaseMapper接口的selectById方法:baseMapper.selectById(id);
    • 使用MybatisPlus的Mapper接口的selectList方法:mapper.selectList(queryWrapper);
    • 使用MybatisPlus的BaseMapper接口的selectList方法:baseMapper.selectList(queryWrapper);
    • 使用MybatisPlus的Mapper接口的selectOne方法:mapper.selectOne(queryWrapper);
    • 使用MybatisPlus的BaseMapper接口的selectOne方法:baseMapper.selectOne(queryWrapper);
    • 使用MybatisPlus的Mapper接口的selectPage方法:mapper.selectPage(page, queryWrapper);
    • 使用MybatisPlus的BaseMapper接口的selectPage方法:baseMapper.selectPage(page, queryWrapper);
  3. 更新操作(Update):

    • 使用MybatisPlus的Mapper接口的updateById方法:mapper.updateById(entity);
    • 使用MybatisPlus的BaseMapper接口的updateById方法:baseMapper.updateById(entity);
    • 使用MybatisPlus的Mapper接口的update方法:mapper.update(entity, queryWrapper);
    • 使用MybatisPlus的BaseMapper接口的update方法:baseMapper.update(entity, queryWrapper);
  4. 删除操作(Delete):

    • 使用MybatisPlus的Mapper接口的deleteById方法:mapper.deleteById(id);
    • 使用MybatisPlus的BaseMapper接口的deleteById方法:baseMapper.deleteById(id);
    • 使用MybatisPlus的Mapper接口的delete方法:mapper.delete(queryWrapper);
    • 使用MybatisPlus的BaseMapper接口的delete方法:baseMapper.delete(queryWrapper);

以上就是MybatisPlus的CURD操作的总结,通过使用MybatisPlus提供的增强工具,可以简化数据库操作的开发工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/224048.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用Python写一个双均线策略

(永久免费&#xff0c;扫码加入) 本篇是量化系列的内容&#xff0c;已经购买小册的不要看了。 我的小册:(小白零基础用Python量化股票分析小册) ,原价199&#xff0c;限时特价39&#xff0c;满100人涨10元。 双均线策略应该是所有的股票软件&#xff0c;股票网站都必备的一个策…

【English】水果单词小小汇总~~

废物研究生&#xff0c;只要不搞科研干啥都是开心的&#xff0c;啊啊啊啊啊科研要命。作为一个水果怪&#xff08;每天不吃水果就要命的那种哈哈哈哈&#xff09;突然发现竟然就知道什么apple、banana、orange&#xff01;惭愧惭愧&#xff0c;正好兴致正浓&#xff0c;来整理一…

Python 爬虫之下载视频(四)

爬取某投币视频平台的小视频 文章目录 爬取某投币视频平台的小视频前言一、基本内容二、基本思路三、代码编写1.引入库2.设置手机模式3.跳过手动点击等操作4.获取视频下载地址5.获取视频标题6.下载保存 总结 前言 这篇用来记录一下如何爬取这个平台的视频&#xff0c;比如一些…

NUAA-云计算-考试

19级期末 问题 答案: md格式 自己想办法看 # 随堂测验#### 一、请简述GFS 的系统架构和特点。**1. 系统架构**- GFS将整个系统节点分为三类角色&#xff1a;- Client&#xff08;客户端&#xff09;&#xff1a;Client是GFS提供给应用程序的访问接口&#xff0c;以库文件的…

C语言如何生成随机数以及设置随机数的范围。(超详细)

文章目录 前言一、随机数的生成1.rand函数2.srand函数3.time函数4.生成随机数的代码如下&#xff1a; 二、设置随机数的范围总结 前言 博主将会这篇文章介绍c语言如何生成随机数以及设置随机数的范围。创作不易请大家点点赞&#xff0c;点点关注。 一、随机数的生成 1.rand函…

Ubuntu20.04纯命令配置PCL(点云库)

Ubuntu20.04纯命令配置PCL&#xff08;点云库&#xff09; 最近在学习点云库&#xff08;PCL&#xff09;的使用&#xff0c;第一步就是在自己的电脑安装配置PCL。 首先&#xff0c;对于ubuntu 16.04以上版本&#xff0c;可以直接使用命令进行安装&#xff0c;新建好一个文件夹…

IDEA中Git的常用使用方式

IDEA中Git的常用使用方式 1.初次拉取远程仓库项目代码到本地2.初次提交本地项目代码到远程仓库新分支方式一&#xff1a;提交时把.git目录删除掉&#xff0c;不保留以往修改记录方式二&#xff1a;提交时不删除.git目录&#xff0c;保留以往修改记录 3.日常拉取、提交、推送代码…

基于Hexo+GitHub Pages 的个人博客搭建

基于HexoGitHub Pages 的个人博客搭建 步骤一&#xff1a;安装 Node.js 和 Git步骤二&#xff1a;创建Github Pages 仓库步骤二&#xff1a;安装 Hexo步骤三&#xff1a;创建 Hexo 项目步骤四&#xff1a;配置 Hexo步骤五&#xff1a;创建新文章步骤六&#xff1a;生成静态文件…

vscode | python | remote-SSH | Debug 配置 + CLIP4Clip实验记录

安装Extension 本地安装Remote-SSH、python 远程服务器上安装Python 难点&#xff1a;主机和远程服务器上安装Python扩展失败&#xff0c;可能是网络、代理等原因导致解决方法&#xff1a; 主机在官方网站下载Python扩展&#xff1a;https://marketplace.visualstudio.com/it…

AI绘画训练一个扩散模型-上集

介绍 AI绘画&#xff0c;其中最常见方案基于扩散模型&#xff0c;Stable Diffusion 在此基础上&#xff0c;增加了 VAE 模块和 CLIP 模块&#xff0c;本文搞了一个测试Demo&#xff0c;分为上下两集&#xff0c;第一集是denoising_diffusion_pytorch &#xff0c;第二集是diff…

数据库开发之图形化工具以及表操作的详细解析

2.3 图形化工具 2.3.1 介绍 前面我们讲解了DDL中关于数据库操作的SQL语句&#xff0c;在我们编写这些SQL时&#xff0c;都是在命令行当中完成的。大家在练习的时候应该也感受到了&#xff0c;在命令行当中来敲这些SQL语句很不方便&#xff0c;主要的原因有以下 3 点&#xff…

截断整型提升算数转换

文章目录 &#x1f680;前言&#x1f680;截断&#x1f680;整型提升✈️整型提升是怎样的 &#x1f680;算术转换 &#x1f680;前言 大家好啊&#xff01;这里阿辉补一下前面操作符遗漏的地方——截断、整型提升和算数转换 看这一篇要先会前面阿辉讲的数据的存储否则可能看不…

Dijkstra(迪杰斯特拉)算法总结

知识概览 Dijkstra算法适用于解决所有边权都是正数的最短路问题。Dijkstra算法分为朴素的Dijkstra算法和堆优化版的Dijkstra算法。朴素的Dijkstra算法时间复杂度为&#xff0c;适用于稠密图。堆优化版的Dijkstra算法时间复杂度为&#xff0c;适用于稀疏图。稠密图的边数m和是一…

React学习计划-React16--React基础(五)脚手架创建项目、todoList案例、配置代理、消息订阅与发布

一、使用脚手架create-react-app创建项目 react脚手架 xxx脚手架&#xff1a;用来帮助程序员快速创建一个基于xxx库的模板项目 包含了所有需要的配置&#xff08;语法检查、jsx编译、devServe…&#xff09;下载好了所有相关的依赖可以直接运行一个简单的效果 react提供了一个…

产品设计 之 创建完美产品需求文档的4个核心要点

客户描述他们想要的产品和最终交付的产品之间的误解一般很大&#xff0c;设计者和客户的角度不同&#xff0c;理解的程度也不同&#xff0c;就需要一个统一的交流中介。这里包含PRD。 为了说明理解误差的问题。下面这张有趣的图画可以精准阐述。 第一张图片展示了客户所描述…

Matlab仿真OOK、2FSK、2PSK、QPSK、4QAM在加性高斯白噪声信道中的误码率与归一化信噪比的关系

本文为学习所用&#xff0c;严禁转载。 本文参考链接 https://zhuanlan.zhihu.com/p/667382398 QPSK代码及高斯白噪声如何产生 https://ww2.mathworks.cn/help/signal/ref/butter.html 滤波器 https://www.python100.com/html/4LEF79KQK398.html 低通滤波器 本实验使用matlab仿…

【linux提权】利用setuid进行简单提权

首先先来了解一下setuid漏洞&#xff1a; SUID (Set UID)是Linux中的一种特殊权限,其功能为用户运行某个程序时&#xff0c;如果该程序有SUID权限&#xff0c;那么程序运行为进程时&#xff0c;进程的属主不是发起者&#xff0c;而是程序文件所属的属主。但是SUID权限的设置只…

「微服务模式」七种微服务反模式

什么是微服务 流行语经常为进化的概念提供背景&#xff0c;并且需要一个良好的“标签”来促进对话。微服务是一个新的“标签”&#xff0c;它定义了我个人一直在发现和使用的领域。文章和会议描述了一些事情&#xff0c;我慢慢意识到&#xff0c;过去几年我一直在发展自己的个人…

2023航天推进理论基础考试划重点(W老师)-液体火箭发动机1

适用于期末周求生欲满满的西北工业大学学生。 1、液体火箭发动机的基本组成及功能是什么&#xff1f; 推力室组件、推进剂供应系统、阀门与调节器、发动机总装元件等组成。 2、液体火箭发动机的分类和应用是什么&#xff1f;3、液体火箭发动机系统、分系统的概念是什么&…

交友系统设计:哪种地理空间邻近算法更快?

小熊学Java&#xff1a;https://javaxiaobear.cn 交友与婚恋是人们最基本的需求之一。随着互联网时代的不断发展&#xff0c;移动社交软件已经成为了人们生活中必不可少的一部分。然而&#xff0c;熟人社交并不能完全满足年轻人的社交与情感需求&#xff0c;于是陌生人交友平台…