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();
    
  • 相关阅读:
    QOS-Qos标记和QOS-Policy策略
    QOS-CBQ概述
    QOS-基本拥塞管理机制(PQ CQ WFQ RTPQ)
    QOS-QOS(服务质量)概述
    MariaDB数据库服务
    24、配置Oracle下sqlplus历史命令的回调功能
    11、nginx+tomcat+redis_session共享
    9、make和make install的区别
    10、nginx+uwsgi+django部署(动静分离)
    15、iptables_nat目标地址转换(外网访问内网)
  • 原文地址:https://www.cnblogs.com/zllk/p/14044698.html
Copyright © 2011-2022 走看看