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

yizhihongxing

来分享一下“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日

相关文章

  • csc.exe已退出,代码为-532462766

    csc.exe已退出,代码为-532462766 csc.exe是C#编译器,而代码“-532462766”的出现通常代表编译器无法找到对应的程序集。本篇文章将介绍可能导致该问题出现的原因和解决方法。 1. 问题原因 当我们在编写C#程序时使用了依赖的程序集(即其他已编译好的代码),但编译器却无法找到这些程序集时,就会出现“csc.exe已退出,代码为-53…

    其他 2023年3月28日
    00
  • phpstudy配置伪静态的方法

    以下是“phpstudy配置伪静态的方法”的完整攻略: phpstudy配置伪静态的方法 伪静态是一种将动态URL转换为静态URL的技术,可以提高网站的SEO效果和用户体验。在phpstudy中,您可以通过配置伪静态来实现这一目的。本攻略将介绍如何在phpstudy中配置伪静态。 步骤1:打开phpstudy控制面板 要配置phpstudy的伪态,您需要先打…

    other 2023年5月7日
    00
  • View事件分发原理和ViewPager+ListView嵌套滑动冲突

    View事件分发原理 在Android中,View事件分发是指将触摸事件从父View传递到子View的过程。View事件分发涉及到三个方法:dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()。 dispatchTouchEvent():该方法用于分发触摸事件,它会根据事件类型和触摸位置将事件…

    other 2023年7月28日
    00
  • 关于c++:何时ofstream::open会失败?

    关于C++:何时ofstream::open会失败? 在C++中,我们可以使用ofstream类来写入文件。但是,在使用ofstream::open方法打开文件时,可能会出现失败的情况。以下是关于时ofstream::open会失败的完整攻略。 步骤1:了解失败原因 在使用ofstream::open方法打开文件时可能会出现以下几种失败情况: 文件不存在 文…

    other 2023年5月9日
    00
  • Highchart基础教程-图表的主要组成

    下面是“Highchart基础教程-图表的主要组成的完整攻略”,包括图表的主要组成、使用方法、两个示例说明等方面。 图表的主要组成 Highchart是一个基于JavaScript的图表库,它可以用来创建各种类型的图表,包括线图、柱状图、饼图等。一个Highchart图表主要由以下几个组成部分: 标题:用于描述图表的主题或主要内容。 坐标轴:用于显示数据的坐…

    other 2023年5月5日
    00
  • centos下嵌套创建文件夹讲解

    CentOS下嵌套创建文件夹攻略 在CentOS操作系统中,可以使用mkdir命令来创建文件夹。要嵌套创建文件夹,即在已存在的文件夹中创建新的文件夹,可以通过在路径中使用斜杠(/)来实现。下面是详细的攻略: 步骤一:打开终端 首先,打开终端。在CentOS中,可以通过点击桌面上的终端图标或者使用快捷键(如Ctrl+Alt+T)来打开终端。 步骤二:进入目标文…

    other 2023年7月28日
    00
  • 如何批量创建不同命名的文件夹?创建不同命名文件夹的方法

    可以使用以下三种方法,来批量创建不同命名的文件夹。 方法一:使用命令行 在Windows系统中可以使用命令行的方式创建不同名称的文件夹,具体步骤如下: 打开命令提示符(Win+R 键,输入cmd,回车); 针对所需创建的文件夹个数输入一行命令,在命令行窗口中回车并等待执行完成(这里以创建10个文件夹为例): for /l %i in (1,1,10) do …

    other 2023年6月26日
    00
  • 基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )

    下面是基于jQuery实现”当鼠标滚轮到最底端继续加载新数据”的完整攻略。 思路 监听页面滚动事件,判断是否滚到底部。 如果滚动到底部,触发加载事件。 加载事件中通过AJAX获取新数据并添加到页面中。 具体实现 下面我们将通过两个示例来详细讲解如何实现该功能。 示例1:模拟加载微博数据 HTML结构: <div id="weibo-list&…

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