mybatis-plus Wrapper条件构造器updateForSet更新方式

来分享一下“mybatis-plus Wrapper条件构造器updateForSet更新方式”的完整攻略。

首先,需要说明的是,mybatis-plus是MyBatis的增强工具,在使用过程中比较方便、简单。在进行update操作时,我们常使用的是updateById或者update实体对象的方法,但是这种方式的不足之处是只可以更新指定的列,而不能在不更改其他列的情况下更新部分列。而mybatis-plus的Wrapper条件构造器updateForSet更新方式就可以完美地解决这个问题。

mybatis-plus的Wrapper条件构造器updateForSet更新方式正是通过构造条件来进行更新,增加了灵活性,下面通过两个示例进行详细讲解。

示例 1

假设我们有以下的Teacher表,需要对年龄小于20的记录进行更新,将其所在班级ID改为10:

id name age class_id
1 tom 18 1
2 mike 20 2
3 lucy 19 3
4 jenny 22 4

我们采用以下的Wrapper构造条件:

Wrapper<Teacher> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda().lt(Teacher::getAge, 20).set(Teacher::getClassId, 10);

这里的lambda函数用于指定更新条件,lt即小于小于(lessThan),表示年龄小于20;set函数则用于指定更新的内容,将所在班级ID改为10。

最后,我们通过以下方式执行更新操作:

int count = teacherMapper.update(null, updateWrapper);
System.out.println(count);

这里需要注意,update的第一个参数必须传null,否则会报错。更新后结果:

id name age class_id
1 tom 18 10
2 mike 20 2
3 lucy 19 10
4 jenny 22 4

示例 2

假设我们有以下的Course表,需要对学分大于2且状态为1的记录进行更新,将学分加1:

id name credit status
1 English 3 1
2 Math 2 0
3 Music 1 1
4 Sports 3 1

我们采用以下的Wrapper构造条件:

Wrapper<Course> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda().gt(Course::getCredit, 2).eq(Course::getStatus, 1).setSql("credit=credit+1");

这里的lambda函数用于指定更新条件,gt即大于(greaterThan),表示学分大于2;eq即等于(equalTo),表示状态为1;setSql函数用于指定更新内容,将学分加1。

最后,我们通过以下方式执行更新操作:

int count = courseMapper.update(null, updateWrapper);
System.out.println(count);

更新后结果:

id name credit status
1 English 4 1
2 Math 2 0
3 Music 1 1
4 Sports 4 1

说明:以上仅是示例,请根据实际需求灵活使用Wrapper条件构造器updateForSet更新方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis-plus Wrapper条件构造器updateForSet更新方式 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 这些开源的oa协同办公系统 真的免费又好用!

    这些开源的OA协同办公系统真的免费又好用! 随着互联网的发展,越来越多的企业开始使用OA协同办公系统来提高工作效率和管理效率。而开源的OA同办公系统不仅免费,且强大,可以满足大部分企业的需求。本文将介绍几款开源的OA同办公系统,并提供两示例说明以帮助您更好地了解和应用这些系统。 1. 开源OA 开OA是一款基于Web的OA协同办系统,支持多语言、多平台、多数…

    other 2023年5月7日
    00
  • SecureCRT如何修改配置文件夹?SecureCRT修改配置文件夹教程

    SecureCRT是一款用于SSH(Secure Shell)协议的控制台终端模拟软件,它通过提供一种安全、简单的设置来帮助用户控制远程主机并管理多个会话。在使用SecureCRT时,如果我们需要修改配置文件夹,可以按照以下步骤进行操作: 打开SecureCRT,点击菜单栏的“选项”->“全局选项”,弹出“SecureCRT全局选项”窗口。 在“Sec…

    other 2023年6月25日
    00
  • Android Tab 控件详解及实例

    Android Tab控件详解及实例 Tab控件是一种非常常见的UI控件,常被用于切换不同的功能模块。本文将详细讲解Android Tab控件的使用方法。 Tab控件简介 Tab控件常用于切换应用的不同功能模块。它的主要特点是,所有的Tab选项都在同一个屏幕上,用户可以轻松地切换不同的模块。常见的Tab控件有ActionBar Tab、PagerTab等。 …

    other 2023年6月27日
    00
  • AAM(Active Appearance Model)算法介绍

    AAM(Active Appearance Model)算法介绍 Active Appearance Model (AAM) 是一种用于对象检测和跟踪的计算机视觉技术。它是由Cootes等人于1998年发明的,它可以用于面部识别、面部表情分析、头发、人体等物体识别。AAM算法主要基于形状模型和纹理模型的组合,使用图像对模型进行训练,并进行目标识别和跟踪。它被…

    其他 2023年3月28日
    00
  • Android实现RecyclerView嵌套流式布局的详细过程

    Android实现RecyclerView嵌套流式布局的详细过程 在Android中,要实现RecyclerView嵌套流式布局,可以使用以下步骤: 步骤一:添加依赖 首先,在项目的build.gradle文件中添加以下依赖: implementation ‘com.google.android.material:material:1.4.0’ implem…

    other 2023年7月28日
    00
  • vue中缓存组件keep alive的介绍及使用方法

    Vue中缓存组件Keep-Alive的介绍及使用方法 在Vue中,我们经常需要在不同的组件之间进行切换,这时候基本上是通过销毁旧组件并渲染新组件的方式来实现的。然而,在某些情况下,我们可能需要将某些组件缓存起来,以便在稍后再次使用。这时候,Vue中的Keep-Alive组件就派上用场了。 什么是Keep-Alive组件 Keep-Alive是Vue.js的一…

    other 2023年6月27日
    00
  • mysql获取字符串长度函数(CHAR_LENGTH)

    CHAR_LENGTH是MySQL中一个获取字符串长度的函数。下面我将详细讲解使用该函数的攻略,包含如何正确定义和使用该函数及示例说明: 1. 定义 CHAR_LENGTH函数是MySQL的一个字符串函数,用于获取字符串的长度,以字符为单位。它可以处理任何字符串数据类型,包括CHAR、VARCHAR、TEXT、BLOB、ETC。当参数为NULL时,它返回NU…

    other 2023年6月20日
    00
  • 将ChatGPT接入微信实现智能回复功能

    非常感谢您对“将ChatGPT接入微信实现智能回复功能”的关注,下面是详细的攻略说明。 准备工作 在开始接入ChatGPT之前,需要先准备好以下工作: 注册微信开发者平台账号,创建公众号并获取AppID和AppSecret。 注册腾讯云账号,并在API密钥管理中创建访问密钥。 接入ChatGPT 接下来我们需要通过以下步骤将ChatGPT接入微信实现智能回复…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部