深入解析Mybatis-Plus框架:简化Java持久层开发(八)

🍀 前言

博客地址:

  • CSDN:https://blog.csdn.net/powerbiubiu

👋 简介

本章节介绍如何通过Mybatis-Plus更新数据库中的数据。
本章节不需要前置准备,继续使用之前的测试类,数据库表进行操作。

📖 正文

1 Mapper接口

# 根据主键 ID 来更新
int updateById(T entity);
# entity 用于设置更新的数据,wrapper 用于组装更新条件
int update(T entity, Wrapper<T> updateWrapper);
1.1 updateById

根据主键id更新数据
需求:修改id为2的角色的名称为游客1号,角色编码为tourist02

@Test
public void updateByMapper() {Role role = Role.builder().id(2L).roleName("游客1号").roleCode("tourist01").build();int i = roleMapper.updateById(role);System.out.println("更新:" + i);
}// 更新:1

实际执行的SQL

UPDATE tb_role SET role_name='游客1号', role_code='tourist01' WHERE id=2
1.2 update

同过其他条件来更新数据
需求:更新角色编码为TEST02的角色数据,修改角色名称为游客2号,角色编码为tourist02

@Test
public void updateByMapper() {// 构造数据Role role = Role.builder().roleName("游客2号").roleCode("tourist02").build();// 条件构造器LambdaUpdateWrapper<Role> wrapper = Wrappers.<Role>lambdaUpdate().eq(Role::getRoleCode, "TEST02");int i = roleMapper.update(role, wrapper);System.out.println("更新:" + i);
}// 更新:1

实际执行的SQL

UPDATE tb_role SET role_name='游客2号', role_code='tourist02' WHERE (role_code = 'TEST02')

2 Service接口

// 根据 ID 来更新,entity 用于设置 ID 以及其他更新条件
boolean updateById(T entity);
// wrapper 用于设置更新数据以及条件
boolean update(Wrapper<T> updateWrapper);
// entity 用于设置更新的数据,wrapper 用于组装更新条件
boolean update(T entity, Wrapper<T> updateWrapper);
// 批量更新
boolean updateBatchById(Collection<T> entityList);
// 批量更新,可手动设置批量提交阀值
boolean updateBatchById(Collection<T> entityList, int batchSize);
// 保存或者更新
boolean saveOrUpdate(T entity);
2.1 update

boolean update(T entity, Wrapper<T> updateWrapper)该方式更新和Mapper接口的方式一样,区别只是返回值类型不一样,可以参考上一章删除的操作。
这里使用下boolean update(Wrapper<T> updateWrapper)来进行更新
需求:将角色编码为TEST03的角色修改为,角色名称为游客3号,角色编码为tourist03

@Test
public void updateByService() {// 条件构造器LambdaUpdateWrapper<Role> wrapper = Wrappers.<Role>lambdaUpdate().set(Role::getRoleName, "游客3号").set(Role::getRoleCode, "tourist03").eq(Role::getRoleCode, "TEST03");boolean b = roleService.update(wrapper);System.out.println("更新:" + b);
}// 更新:true

实际执行的SQL

UPDATE tb_role SET role_name='游客3号',role_code='tourist03' WHERE (role_code = 'TEST03')
2.2 updateBatchById

批量更新
需求:修改id为2,3,4的角色

@Test
public void updateByService() {List<Role> roles = new ArrayList<>();roles.add(Role.builder().id(2L).roleName("测试1号").roleCode("test01").build());roles.add(Role.builder().id(3L).roleName("测试2号").roleCode("test02").build());roles.add(Role.builder().id(4L).roleName("测试3号").roleCode("test03").build());boolean b = roleService.updateBatchById(roles);System.out.println("更新:" + b);
}// 更新:true

实际执行的SQL

UPDATE tb_role SET role_name='测试1号', role_code='test01' WHERE id=2
UPDATE tb_role SET role_name='测试2号', role_code='test02' WHERE id=3
UPDATE tb_role SET role_name='测试3号', role_code='test03' WHERE id=4

✏ 总结

💖 欢迎关注我的公众号

在这里插入图片描述

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

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

相关文章

2024 最新Google play应用上架详细流程

众所周知&#xff0c;Google Play 是应用出海开发者发布和推广 Android 应用的首选平台。今天跟大家分享一下在Google Paly上架应用的详细且实用的指南。 一、前提准备 可以正常访问Google play开发者平台的网络 已经注册好了的开发者账号 应用的Android App Bundle文件 隐私…

Python 中实现 CDF 累积分布图的两种方法

什么是累积分布 累积分布函数&#xff0c;又叫分布函数&#xff0c;是概率密度函数的积分&#xff0c;能完整描述一个实随机变量X的概率分布。一般以大写“CDF”&#xff08;Cumulative Distribution Function&#xff09;标记。 《百度百科》 累积分布函数&#xff0c;又叫分…

电子签名签章:重塑企业办公方式,开启智能合约新时代!

在现代社会&#xff0c;随着科技的发展&#xff0c;纸质文件逐渐被电子文件所取代&#xff0c;传统的签名方式也面临着数字化的转型。电子签名签章云服务就是在这样的背景下应运而生的一种新型技术服务&#xff0c;它结合了云计算、大数据、人工智能等前沿技术&#xff0c;为用…

input输入框的23中类型

HTML 的 <input> 元素支持多种类型&#xff0c;这些类型决定了用户如何与表单控件进行交互。以下是 HTML5 中 <input> 元素的 23 种类型&#xff0c;以及每种类型的代码示例和效果图的描述&#xff08;请注意&#xff0c;由于文本的限制&#xff0c;我无法直接在这…

LVGL如何创建页面并实现页面的切换

如何绘制一个页面 先搞清楚一个问题&#xff0c;那就是绘制一个页面&#xff0c;是直接创建一个新的屏幕&#xff0c;还是基于默认的屏幕创建一个一个的父类呢&#xff1f; 参考这篇文章 LVGL_多界面切换_lvgl 多页面建立-CSDN博客 可知通常是创建一个新的屏幕&#xff0c;每个…

谈谈this对象的理解以及this的指向问题

文章目录 this的定义绑定规则默认绑定隐式绑定new绑定显示修改箭头函数this的指向问题丢失的this有需要的请私信博主&#xff0c;还请麻烦给个关注&#xff0c;博主不定期更新&#xff0c;或许能够有所帮助&#xff01;&#xff01;请关注公众号 this的定义 函数的 this 关键字…

第 5 章 ROS常用组件静态坐标变换(自学二刷笔记)

5.1.2 静态坐标变换 所谓静态坐标变换&#xff0c;是指两个坐标系之间的相对位置是固定的。 需求描述: 现有一机器人模型&#xff0c;核心构成包含主体与雷达&#xff0c;各对应一坐标系&#xff0c;坐标系的原点分别位于主体与雷达的物理中心&#xff0c;已知雷达原点相对于…

R语言安装IDE工具,RStudio 安装

R语言安装IDE工具&#xff0c;RStudio 安装 介绍下载安装包安装使用运行结果快捷键和使用技巧常用快捷键使用技巧 介绍 RStudio是一个集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门用于R编程语言的开发和数据分析。它提供了许多工具和功能&#xff0c;使R编程更加…

《汇编语言》第3版 (王爽)第10章检测点解析

第10章 检测点 检测点10.1&#xff1a;补全程序&#xff0c;实现从内存1000:0000处开始执行指令。 解析: 我们知道retf指令是用栈中的数据&#xff0c;同时修改CS和IP寄存器中的内容&#xff0c;实现远转移&#xff0c;而且是先出栈的数据放入IP中&#xff0c;后出栈的数据放入…

java-springboot 源码 01

01.springboot 是一个启动器 先安装maven&#xff0c;按照网上的流程来。主要是安装完成后&#xff0c;要修改conf目录下的setting.xml文件。 添加&#xff1a;阿里云镜像 <mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>ali…

unity-urp:视野雾

问题背景 恐怖游戏在黑夜或者某些场景下&#xff0c;需要用雾或者黑暗遮盖视野&#xff0c;搭建游戏氛围 效果 场景中&#xff0c;雾会遮挡场景和怪物&#xff0c;但是在玩家视野内雾会消散&#xff0c;距离玩家越近雾越薄。 当前是第三人称视角&#xff0c;但是可以轻松的…

2022年浙江省职业院校技能大赛信息安全管理与评估 理论题答案

培训、环境、资料 公众号&#xff1a;Geek极安云科 网络安全群&#xff1a;775454947极安云科专注于技能提升&#xff0c;赋能 2024年广东省高校的技能提升&#xff0c;在培训中我们的应急响应环境 成功押题成功&#xff0c;知识点、考点、内容完美还原大赛赛题环境&#xff0c…