• 【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();
    
  • 相关阅读:
    mysql之SQL入门与提升(三)
    DROOLS通过URL访问changset
    drools规则管理Guvnor的安装
    kafka offset manage
    kafka comsumer
    kafka与zookeeper
    kafka数据祸福和failover
    kafka一些问题点的分析
    近期开发storm遇到一些问题的解决点
    关于大数据平台ETL可行性方案
  • 原文地址:https://www.cnblogs.com/zllk/p/14044698.html
Copyright © 2020-2023  润新知