mybatisplus如何根据不同ID批量更新

 更新时间:2026年04月23日 09:39:34   作者:LatteLuLu  
本文介绍了MyBatis-Plus中使用Wrapper批量更新数据的方法,包括使用UpdateWrapper批量更新相同属性值、根据ID数组批量更新相同属性值,以及使用updateBatchById方法批量更新多个属性值,提供了示例代码和注意事项

多个id修改相同属性值——使用Wrapper

可以使用 mybatis-Plus 提供的 UpdateWrapper 来批量更新数据。

以下是一个根据不同 ID 批量更新的示例:

List<Integer> idList = Arrays.asList(1, 2, 3);
User user = new User();
user.setAge(20);

UpdateWrapper<User> wrapper = new UpdateWrapper<>();
wrapper.in("id", idList);
int rows = userMapper.update(user, wrapper);

上面的示例中,我们首先定义了一个 ID 列表 idList,然后创建了一个 User 对象,设置了要更新的字段。接着,我们使用 UpdateWrapper 创建一个更新条件,使用 in 方法指定要更新的 ID 列表。最后,调用 userMapper.update 方法执行更新,返回受影响的行数。

需要注意的是,使用 UpdateWrapper 更新数据时,如果要更新的字段为 null,则不会更新该字段。如果要更新为 null,可以使用 setNull 方法。

多个id修改相同属性值——不使用Wrapper

相关问题

mybatisplus根据id数组进行批量更新

可以使用MyBatis-Plus提供的updateBatchById方法来实现根据id数组进行批量更新。

示例代码:

List<Integer> idList = Arrays.asList(1, 2, 3);
User user = new User();
user.setAge(18);
int rows = userService.updateBatchById(idList, user);

其中,idList为需要更新的id数组,user为需要更新的字段及值,userService为对应的service接口。执行该方法后,会将id为1、2、3的记录的age字段更新为18,并返回更新的行数。

需要注意的是,updateBatchById方法会将所有记录都更新,因此在使用时需要注意数据量的大小,以避免影响系统性能。

多个id修改多个属性值——不同id的不同属性

mybatisplus根据id批量修改

你使用 MyBatis-Plus 提供的 updateBatchById 方法来批量修改记录。该方法的参数为一个实体对象列表,表示要修改的记录,具体步骤如下:

  • 创建一个实体对象列表,表示要修改的记录。
  • 调用 IService 接口的 updateBatchById 方法,将实体对象列表作为参数传入。
  • 根据返回值判断批量修改是否成功。

以下是示例代码:

List<User> userList = new ArrayList<>();
User user1 = new User();
user1.setId(1L);
user1.setName("Tom");
userList.add(user1);

User user2 = new User();
user2.setId(2L);
user2.setName("Jerry");
userList.add(user2);

// 调用 updateBatchById 方法批量修改记录
boolean success = userService.updateBatchById(userList);

if (success) {
  System.out.println("批量修改成功!");
} else {
  System.out.println("批量修改失败!");
}

其中,User 类表示实体对象,userService 是一个实现了 IService 接口的服务类。

需要注意的是:

User 类必须继承 Model 类,以便 MyBatis-Plus 能够正确识别实体对象的主键属性。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring Boot Admin 进行项目监控管理的方法

    Spring Boot Admin 进行项目监控管理的方法

    Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。 这篇文章主要介绍了 Spring Boot Admin 进行项目监控管理的方法,需要的朋友可以参考下
    2020-07-07
  • IntelliJ IDEA引入第三方jar包或查看Java源码的时候报decompiled.class file bytecode version:52.0(java 8)错误的解决办法

    IntelliJ IDEA引入第三方jar包或查看Java源码的时候报decompiled.class file byt

    今天小编就为大家分享一篇关于IntelliJ IDEA引入第三方jar包或查看Java源码的时候报decompiled.class file bytecode version:52.0(java 8)错误的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • MyBatis-Plus详解(环境搭建、关联操作)

    MyBatis-Plus详解(环境搭建、关联操作)

    MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生,今天通过本文给大家介绍MyBatis-Plus环境搭建及关联操作,需要的朋友参考下吧
    2022-09-09
  • springboot整合阿里云oss上传的方法示例

    springboot整合阿里云oss上传的方法示例

    这篇文章主要介绍了springboot整合阿里云oss上传的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • JavaSE实现三子棋游戏

    JavaSE实现三子棋游戏

    这篇文章主要为大家详细介绍了JavaSE实现三子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • SpringBoot如何取消内置Tomcat启动并改用外接Tomcat

    SpringBoot如何取消内置Tomcat启动并改用外接Tomcat

    这篇文章主要介绍了SpringBoot如何取消内置Tomcat启动并改用外接Tomcat,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java 基于UDP协议实现消息发送

    Java 基于UDP协议实现消息发送

    这篇文章主要介绍了Java 基于UDP协议实现消息发送,帮助大家更好的理解和学习Java网络编程,感兴趣的朋友可以了解下
    2020-11-11
  • springMVC中的view视图详细解析

    springMVC中的view视图详细解析

    这篇文章主要介绍了springMVC中的view视图,springMVC视图的种类很多,默认有转发视图和重定向视图,本文就每一种视图给大家详细介绍,需要的朋友可以参考下
    2022-03-03
  • 解决Mybatis-plus找不到对应表及默认表名命名规则的问题

    解决Mybatis-plus找不到对应表及默认表名命名规则的问题

    这篇文章主要介绍了解决Mybatis-plus找不到对应表及默认表名命名规则的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Mybatis四种分页方式小结

    Mybatis四种分页方式小结

    本文详细介绍MyBatis中四种分页方式:数组分页、SQL分页、RowBounds分页及拦截器分页,具有一定的参考价值,感兴趣的可以了解一下
    2025-07-07

最新评论