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日

相关文章

  • docker-docker-compose如何在kafka容器上安装kafkacat

    以下是“docker-docker-compose如何在kafka容器上安装kafkacat”的完整攻略: 1. Docker中安装kafkacat 在Docker中安装kafkacat非常简单,我们可以使用以下命令在Kafka容器中安装kafkacat: docker exec -it <kafka_container_id> /bin/bas…

    other 2023年5月8日
    00
  • IE6,IE7下js动态加载图片不显示错误

    针对IE6、IE7下js动态加载图片不显示的问题,其原因在于浏览器缓存机制的不同导致。在IE6、IE7下,如果通过js动态创建img元素并赋值src属性加载图片,那么图片会被浏览器缓存下来并在后续使用时从缓存中读取。由于IE6、IE7存在缓存机制的限制,导致图片不易被获取。 为解决上述问题,可以采用以下两种方式进行处理: 方式一:添加随机参数 通过添加随机参…

    other 2023年6月25日
    00
  • 火影忍者究极风暴4缺少msvcp120.dll问题的解决方法

    标题:解决“火影忍者究极风暴4缺少msvcp120.dll问题”的完整攻略 问题描述 在运行“火影忍者究极风暴4”游戏时,可能会遇到缺少msvcp120.dll 文件的错误提示,导致游戏无法正常启动。这是因为游戏所需的Microsoft Visual C++ Redistributable运行库缺失或不完整造成的。 解决方法 方法1:安装C++运行库 打开M…

    other 2023年6月27日
    00
  • 【Alpha】Scrum Meeting 3

    【Alpha】Scrum Meeting 3 简介 本文是关于Alpha项目的Scrum Meeting 3的记录。 会议时间 2021年8月15日,周日,晚上7点至8点。 参会成员 产品经理:张三 开发者:李四、王五、赵六、钱七 测试人员:小明、小红 议题 1. 任务完成情况 开发者汇报了上一次Sprint期间所完成的任务,并展示了相关的代码和实现情况。测…

    其他 2023年3月28日
    00
  • Android游戏开发学习之引擎用法实例详解

    Android游戏开发学习之引擎用法实例详解 引擎选择 在进行Android游戏开发时,选择一个合适的游戏引擎是非常重要的。以下是一些常用的Android游戏引擎: Unity:Unity是一款非常流行的跨平台游戏引擎,支持Android平台。它提供了强大的图形渲染和物理模拟功能,以及易于使用的开发工具和编辑器。下面是一个使用Unity引擎开发的示例: us…

    other 2023年7月27日
    00
  • C语言:min和max头文件

    C语言:min和max头文件 在C语言中,我们经常需要比较两个数的大小并取得其中的最大值或最小值。虽然可以自行编写函数来实现此功能,但是C语言标准库中提供了min和max头文件,可以更方便地实现这些操作。 min和max头文件的介绍 min和max头文件是C语言标准库中的头文件,它们分别定义了一组宏(macros),可以用于获取两个数中的最小值或最大值。 这…

    其他 2023年3月28日
    00
  • Idea热加载插件JRebel激活以及使用教程

    Idea热加载插件JRebel激活以及使用教程 JRebel简介 JRebel是一款Java热部署工具,能够在应用程序运行中修改代码并立即生效,不需要重新编译、重启应用程序。这大大加快了开发效率,减少了开发人员的等待时间。目前JRebel支持Spring、Struts2、Hibernate、MyBatis等多种框架。 JRebel激活 JRebel虽然是一个…

    other 2023年6月25日
    00
  • 原生javascript实现分享到朋友圈功能 支持ios和android

    针对“原生javascript实现分享到朋友圈功能 支持ios和android”的需求,我们可以采用以下步骤来实现。具体过程如下: 1. 获取微信分享JS文件 首先需要引入微信分享JS文件,此文件提供了丰富的API,以便我们快速地完成微信分享的功能。 <script src="http://res.wx.qq.com/open/js/jwei…

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