zoukankan      html  css  js  c++  java
  • 【Mybatis-Plus学习笔记(四)】更新

    本系列博客其他文章请点击下方链接查看
    【Mybatis-Plus学习笔记】目录

    根据id更新

    MP中的updateById需要传入一个实体(必须有ID),不为null的值都会被更改,返回影响的行数。如下:

            User user = new User();
            user.setId(1087982257332887553L);
            user.setName("王十蛋");
            int row = userMapper.updateById(user);
            System.out.println("影响的行数:" + row);
    

    相当于

    ''DEBUG==>  Preparing: UPDATE user SET name=?, age=? WHERE id=? 
    ''DEBUG==> Parameters: 王十蛋(String), 0(Integer), 1087982257332887553(Long)
    

    以条件构造器作为参数的更新方法

    UpdateWrapper<User> queryWrapper = new UpdateWrapper<>();
            queryWrapper.likeRight("name", "王").ge("age", 25);
            User user = new User();
            user.setId(1087982257332887553L);
            user.setName("王九蛋");
            user.setAge(15);
            int row = userMapper.update(user, queryWrapper);
            System.out.println("影响的行数:" + row);
    

    相当于

    ''DEBUG==>  Preparing: UPDATE user SET name=?, age=? WHERE name LIKE ? AND age >= ? 
    ''DEBUG==> Parameters: 王九蛋(String), 15(Integer), 王%(String), 25(Integer)
    

    和Select语句一样,UpdateWrapper也有一个带有实体参数的构造器,这个实体中不为null的参数会出现在Where子句中。非常简单就不举例子了。

    条件构造器中set方法使用

    每次更新都要跟新实体非常的麻烦,可以直接在构造器后使用set方法来实现更改。如下

            UpdateWrapper<User> queryWrapper = new UpdateWrapper<>();
            queryWrapper.likeRight("name", "王").ge("age", 25).set("age", 26);
    

    Lambda条件构造器

    更新也有 Lambda条件构造器,如下:

    LambdaUpdateWrapper<User> lambdaUpdateWrapper = Wrappers.<User>lambdaUpdate();
            lambdaUpdateWrapper.eq(User::getName, "李艺伟").eq(User::getAge, 28).set(User::getAge, 30);
            int row = userMapper.update(null, lambdaUpdateWrapper);
            System.out.println("影响的行数:" + row);
    

    相当于

    ''DEBUG==>  Preparing: UPDATE user SET age=? WHERE name = ? AND age = ? 
    ''DEBUG==> Parameters: 30(Integer), 李艺伟(String), 28(Integer)
    

    和查询一样,更新也有一个链式Lambda条件构造器,如下:

    boolean update = new LambdaUpdateChainWrapper<User>(userMapper)
                    .eq(User::getName, "李艺伟").eq(User::getAge, 28).set(User::getAge, 30)
                    .update();
    
  • 相关阅读:
    床前思
    捍卫永恒的爱情,注定是一场梦境(转)
    耳朵生豆
    有志人士自行创业之十大策略
    思念熟睡的你
    如何用好云的弹性
    测试一年多,上线就崩溃!微服务到底应该怎么测试?
    解决Tengine健康检查引起的TIME_WAIT堆积问题
    解读容器的 2020:寻找云原生的下一站
    Java 过滤器的作用
  • 原文地址:https://www.cnblogs.com/zllk/p/14044698.html
Copyright © 2011-2022 走看看