mybatis-plus update 更新操作

mybatis-plus update

版本:3.0+

根据 id 更新

User user = new User();
user.setUserId(1);
user.setAge(29);

user.updateById();
or
Integer rows = userMapper.updateById(user);

条件构造器作为参数进行更新

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","shimin");

User user = new User();
user.setAge(18);

Integer rows = userMapper.update(user, updateWrapper);

条件构造器 Set 方法

假设只更新一个字段在使用 updateWrapper 的构造器中也需要构造一个实体对象, 这样比较麻烦。可以使用 updateWrapper 的 set 方法

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","shimin").set("age", 35);

Integer rows = userMapper.update(null, updateWrapper);

lambda 构造器

LambdaUpdateWrapper

        LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        lambdaUpdateWrapper.eq(User::getRealName, "shimin").set(User::getAge, 34);
    <span class="hljs-type">Integer</span> <span class="hljs-keyword">rows</span> <span class="hljs-operator">=</span> userMapper.update(<span class="hljs-keyword">null</span>, lambdaUpdateWrapper);

LambdaUpdateChainWrapper

 LambdaUpdateChainWrapper<User> lambdaUpdateChainWrapper = new LambdaUpdateChainWrapper<>(userMapper);
    boolean update = lambdaUpdateChainWrapper.e<span class="hljs-string">q(User::getRealName, "shimin")</span>.set(User::getAge, <span class="hljs-number">33</span>).update();
    
    
    <span class="hljs-regexp">//</span>分步写
    lambdaUpdateChainWrapper.e<span class="hljs-string">q(User::getRealName, "shimin")</span>;
    <span class="hljs-keyword">if</span> (user.getAge == <span class="hljs-number">33</span>) {
        lambdaUpdateChainWrapper.set(User::getAge, <span class="hljs-number">33</span>);
    }
lambdaUpdateChainWrapper.update();