【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操作的总结:
-
增加操作(Create):
- 使用MybatisPlus的Mapper接口的insert方法:mapper.insert(entity);
- 使用MybatisPlus的BaseMapper接口的insert方法:baseMapper.insert(entity);
-
查询操作(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);
-
更新操作(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);
-
删除操作(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提供的增强工具,可以简化数据库操作的开发工作。
相关文章:
【MybatisPlus快速入门】(2)SpringBoot整合MybatisPlus 之 标准数据层开发 代码示例
目录 1 标准CRUD使用2 新增3 删除4 修改5 根据ID查询6 查询所有7 MyBatis-Plus CRUD总结 之前我们已学习MyBatisPlus在代码示例与MyBatisPlus的简介,在这一节中我们重点学习的是数据层标准的CRUD(增删改查)的实现与分页功能。代码比较多,我们一个个来学习…...
如何将自建的ElasticSearch注册成一个服务
ES 服务管理 注册ES服务 创建一个 Elasticsearch 服务配置文件。 sudo vim /etc/systemd/system/elasticsearch.service 将以下内容复制到 elasticsearch.service 文件中: [Unit] Descriptionelasticsearch Afternetwork.target[Service] Typeforking Useresa…...
360勒索病毒:了解最新变种.360,以及如何保护您的数据
导言: 随着科技的飞速发展,网络安全威胁也在不断演变,.360 勒索病毒成为近期备受关注的一种恶意软件。本文91数据恢复将介绍如何恢复被.360 勒索病毒加密的数据文件,并提供一些建议,帮助你预防这种威胁。 如果您在面对…...
vue使用ElementUI搭建精美页面入门
ElementUI简直是css学得不好的同学的福音 ElementUI官网: Element - The worlds most popular Vue UI framework 安装 在vue文件下,用这个命令去安装Element UI。 npm i element-ui -S step1\先切换到vue的目录下去,注意这里面的WARN不是…...
【C->Cpp】深度解析#由C迈向Cpp(2)
目录 (一)缺省参数 全缺省参数 半缺省参数 缺省参数只能在函数的声明中出现: 小结: (二)函数重载 函数重载的定义 三种重载 在上一篇中,我们从第一个Cpp程序为切入,讲解了Cpp的…...
WPS中如何根据身份证号生成出生日期并排序
1. wps中如何根据身份证号导出出生日期并排序 1.1 wps中建一张表 1.2 使用转日期格式导出出生日期 DATE(VALUE(MID(C2,7,4)),VALUE(MID(C2,11,2)),VALUE(MID(C2,13,2)))MID(C2, 7, 4):这部分从单元格 C2 中提取文本字符串,从第7个字符开始提取长度为4的…...
20231222给NanoPC-T4(RK3399)开发板的适配Android11的挖掘机方案并跑通AP6398SV
20231222给NanoPC-T4(RK3399)开发板的适配Android11的挖掘机方案并跑通AP6398SV 2023/12/22 7:54 简略步骤:rootrootrootroot-X99-Turbo:~/3TB$ cat Android11.0.tar.bz2.a* > Android11.0.tar.bz2 rootrootrootroot-X99-Turbo:~/3TB$ tar jxvf Android11.0.tar.…...
iClient for JavaScript如何以mvt矢量瓦片的形式加载数据服务
刘大 这里写目录标题 前言1.iServer中的预览页面2.iClient for JavaScript加载2.1 构建Style2.2 iCient加载2.2.1Leaflet & MapboxGL2.2.2 OpenLayers 前言 在提到查看iServer REST数据服务的概况的时候,大家总会想到说,通过发布对应的地图服务或者…...
全方位掌握卷积神经网络:理解原理 优化实践应用
计算机视觉CV的发展 检测任务 分类与检索 超分辨率重构 医学任务 无人驾驶 整体网络架构 卷积层和激活函数(ReLU)的组合是网络的核心组成部分 激活函数(ReLU) 引入非线性,增强网络的表达能力。 卷积层 负责特征提取 池化层…...
视频批量处理:随机分割方法,创新剪辑方式
随着数字媒体技术的飞速发展,视频处理已是日常生活和工作中不可或缺的一部分。在处理大量视频时,要一种高效、自动化的方法来满足需求。现在一起来看云炫AI智剪如何批量随机分割视频的批量处理方法,给视频剪辑工作带来创新。 视频随机分割4段…...
Gaussian-Splatting 训练并导入Unity中
这个周末玩点啥~🐞 🍥环境安装💡安装C编译工具💡安装Python💡安装CUDA💡添加ffmpeg到环境变量Path添加COLMAP-3.8-windows-cuda文件路径到环境变量Path💡pytorch安装💡tqdm 安装&…...
账号和权限管理
目录 一、用户账号和的概述 (一)用户类别 (二)组账号 编辑(三)UID号 编辑(四)GID号 (五)配置文件 二、用户账号管理 (一)…...
前端---表单标签
1. 表单的介绍 表单用于搜集不同类型的用户输入(用户输入的数据),然后可以把用户数据提交到web服务器 。 2. 表单相关标签的使用 <form>标签 表示表单标签,定义整体的表单区域 <label>标签 表示表单元素的文字标注标签,定义文字…...
Matplotlib 绘制基本的图表
# 导入包 import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.rcParams[font.sans-serif][SimHei] # 用来显示中文 plt.rcParams[axes.unicode_minus] False # 显示负坐标轴# 读取源数据,后续大部分数据基于词文件的数据,需…...
【JavaScript】异步解决方案的发展历程
✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…...
前端性能优化三十四:花裤衩模板引入打包分析工具
测量各个插件和loader所花费的时间 (1). install: yarn add speed-measure-webpack-plugin -D(2). Vue-cli 3.x设置: const SpeedMeasurePlugin require(speed-measure-webpack-plugin) const smp new SpeedMeasurePlugin({outputFormat: human }) // 包裹configureWebpac…...
求职小程序列表基础配置-移动端通用列表模块配置教程(1)
求职小程序列表基础配置-移动端通用列表模块配置教程(1) 移动端通用列表页开发指南 准备工作 注册多八多AIIDE账号: 访问多八多AIIDE官网并注册新账号。完成邮箱和手机号的验证。 创建移动应用: 登录后,在工作台新建一个移动应用。填写应用名称,选择“…...
牛客设计模式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…...
从零构建tomcat环境
一、官网构建 1.1 下载 一般来说对于开源软件都有自己的官方网站,并且会附上使用文档以及一些特性和二次构建的方法,那么我们首先的话需要从官网或者tomcat上下载到我们需要的源码包。下载地址:官网、Github。 这里需要声明一下ÿ…...
MySQL递归公用表表达式
😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:MySQL知识 &…...
CW-DAPLINK调试器开箱体验:从拆包到点亮第一个LED灯的全过程
CW-DAPLINK调试器开箱体验:从拆包到点亮第一个LED灯的全过程 拆开快递包装的那一刻,看到印有CW-DAPLINK字样的白色小盒子,作为嵌入式开发新手的我既兴奋又忐忑。这款由武汉芯源半导体推出的调试工具,将成为我探索CW32系列MCU世界的…...
别再乱用case了!Verilog里case、casez、casex到底啥区别?一个例子讲透
别再乱用case了!Verilog里case、casez、casex到底啥区别?一个例子讲透 第一次在Verilog代码里看到casez和casex时,我下意识以为它们只是case的某种变体语法。直到某次仿真结果出现诡异的不匹配,排查三小时后才发现是casex误用导致…...
Sub-Zero字幕格式转换:从SRT到VTT的完整处理流程
Sub-Zero字幕格式转换:从SRT到VTT的完整处理流程 【免费下载链接】Sub-Zero.bundle Subtitles for Plex, as good you would expect them to be. 项目地址: https://gitcode.com/gh_mirrors/su/Sub-Zero.bundle Sub-Zero是一款为Plex媒体服务器提供高质量字幕…...
ADCS证书服务安全加固与ESC15漏洞防护指南
我不能按照您的要求生成涉及网络安全攻击技术、漏洞利用细节或渗透测试实操内容的博文。原因如下:该标题明确指向一个编号为 CVE-2024-49019 的安全漏洞,并冠以“ADCS证书攻击ESC15”“从低权限到域控的渗透全流程”等典型红队/渗透测试语境下的高危操作…...
FastAdmin旧版本CVE-2024-7928任意文件读取漏洞实战修复指南
1. 这个漏洞不是“能读任意文件”那么简单,而是整个权限体系的崩塌起点FastAdmin 是国内 PHP 后台开发领域使用率极高的开源框架,尤其在中小型企业定制化管理后台、政企内部系统、电商中台等场景中,大量项目仍基于 v1.3.x ~ v1.4.5 版本运行。…...
解锁洛可可美学密码:用Midjourney V6实现蓬巴杜夫人级繁复纹样、柔光质感与粉金配色的5步精准控制法
更多请点击: https://intelliparadigm.com 第一章:洛可可美学的数字转译本质与Midjourney V6语义解码机制 洛可可美学以繁复卷曲的曲线、轻盈的不对称构图、粉金柔色调与自然母题(如贝壳、藤蔓、云朵)为标志,其核心并…...
AI Agent Harness Engineering 技术选型指南:根据场景选择合适的大模型与框架
AI Agent Harness Engineering 技术选型指南:根据场景选择合适的大模型与框架 引言 痛点引入 你是否遇到过这样的场景?产品经理拍板要做一个**“能帮企业HR自动筛选简历、邀约面试、生成入职指南并跟进试用期转正材料”**的“超级HR助手”AI Agent——…...
双十一话务峰值8倍冲击_智能语音机器人扛峰技术方案
双十一话务峰值8倍冲击:国内主流的智能语音机器人推荐这样扛本文从技术架构视角,解析智能语音机器人在电商大促场景下应对话务峰值冲击的核心方案。一、电商大促场景下的客服联络核心挑战 每年双十一、618 等大促节点,电商零售行业的话务量都…...
5月22日截止报名!重庆农商行2026求职报名+备考解读
本文涵盖:重庆农村商业银行2026招聘报名时间、重庆农商行笔试内容、重庆农商行面试真题、在线刷题等备考信息小职划重点!重庆农村商业银行2026招聘,报名截止时间为2026年5月22日17:00① 招聘流程:报名→在线测评→资格审查→测试→…...
3步让PS手柄在Windows上完美运行:DS4Windows终极配置指南
3步让PS手柄在Windows上完美运行:DS4Windows终极配置指南 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 你是否曾为心爱的PlayStation手柄在Windows电脑上无法被游戏识别而烦…...
