无感五
2019-03-15 05:55
采纳率: 73.3%
浏览 2.7k
已采纳

spring-boot里面mybatis plus2.0如果实现条件删除和条件修改呢

普通修改

public void update(WebUser webUser){
        webUser.setUpdated(new Date());
        webUsersXgMapper.updateById(webUser);
    }

如果我想实现根据某两个字段来修改这条数据应该怎么修改

如果使用sql语句大概就是这样写,但是我想使用mybatis plus来实现
请问,应该如何实现呢

update tb_cart set num = #{num}, updated = #{updated}
        where item_id = #{itemId} and user_id = #{userId}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qq_22847605 2019-03-15 10:15
    已采纳

    //实体类的条件更新
    public void update(WebUser webUser){
    webUser.setUpdated(new Date());
    webUsersXgMapper.update(webUser,
    new EntityWrapper()
    .eq("item_id","123")
    .eq("user_id",345));
    )
    }

    点赞 评论
  • 不喜欢吃猫的鱼 2019-03-15 09:09

    可以尝试重写他的update方法

    点赞 评论
  • 路漫漫兮其修远兮 2019-03-15 09:24

    方法:根据条件查询出所有的,然后设置字段,在更具ID修改。

    List<WebUser> list = this.webUsersXgMapper.selectList(
                    new QueryWrapper<WebUser>()
                    .eq("item_id", "123")
                    .eq("user_id", "345"));
            list.forEach(l -> {
                l.setNum(2);
                l.setUpdated(new Date());
                this.webUsersXgMapper.updateById(l)
            });
    

    方法2: 条件修改

    webUser.setUpdated(new Date());
            webUser.setNum(2);
            this.webUsersXgMapper.update(webUser,new QueryWrapper<WebUser>()
                    .eq("item_id", "123")
                    .eq("user_id", "345"));
    
    点赞 评论

相关推荐 更多相似问题