UpdateWrapper 根据批量id修改状态

 public Result tJUpdate(Long[] ids) {
        try {
            UpdateWrapper<TbGoods> god =new UpdateWrapper<>();
       //set赋值 "audit_status"为数据库字段,后面0是要修改的值,in 后面跟id参数集合
            god.set("audit_status",0).in("id",ids);
            tbGoodsMapper.update(null,god);
            return new Result(true, "提交成功");
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(true, "提交失败");
        }
    }

原文链接:https://blog.csdn.net/MaYuYan1/article/details/109453840

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的`UpdateWrapper`通常与MyBatis框架的动态SQL功能相关联,特别是与Spring Data JPA中的Querydsl或者是MyBatis的Mapper API配合使用。它允许开发者编写更灵活、更具表达性的SQL查询来更新数据库表中的记录。 ### 使用 UpdateWrapper 进行批量更新的基本步骤: 假设我们有一个名为 `User` 的实体类,并且我们需要批量更新这个实体的一个属性值(例如,将所有用户的年龄增加1岁),我们可以这样做: #### 首先,在配置文件中引入 MyBatis 或者 Spring Data JPA 相关的依赖项 对于 MyBatis,你需要配置 `<mapper>` 和相应的 `XML` 文件;对于 Spring Data JPA,则直接在服务层或 Repository 层使用相关的注解和方法即可。 #### 具体操作示例: **对于 MyBatis:** ```xml <mapper namespace="com.example.mapper.UserMapper"> <update id="batchUpdate"> UPDATE User SET age = age + 1 WHERE id IN (#{ids.join(',')}) </update> </mapper> // Mapper 接口 public interface UserMapper { int batchUpdate(@Param("ids") List<Integer> ids); } ``` **对于 Spring Data JPA:** 首先需要创建一个 UserRepository 继承自 JpaRepository: ```java import org.springframework.data.jpa.repository.JpaRepository; import com.example.entity.User; public interface UserRepository extends JpaRepository<User, Integer> { } ``` 然后在服务层调用 `UserRepository` 来执行批量更新操作: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { @Autowired private UserRepository userRepository; public void updateAgeBatch(List<Integer> userIds) { userRepository.updateAgeById(userIds, user -> user.getAge() + 1); } } ``` 这里的关键点在于,无论是 MyBatis 还是 Spring Data JPA,都需要明确指定哪些 ID 将会被更新以及如何更新它们(本例中是通过设置年龄字段值)。使用 `IN` 子句可以一次性更新多个记录,而 `List` 则用于收集需要更新的记录的唯一标识符。 ### 关键注意点: 1. **性能考虑**:批量更新通常是优化性能的好方法,因为它减少了数据库上的操作次数。 2. **幂等性**:在高并发环境中,确保对同一组ID执行多次同样的批量更新操作不会产生副作用。 3. **安全性**:确保只对预期的数据集进行更新,避免误操作导致的数据错误。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值