mybatis-plus有where条件的更新操作、示例

时间:2025-03-19 07:54:07

 更新sql:

update set email = '123@' where name = '梅长苏' and age = 30

方法:通过实体更新

@Test
public void update() {
    LambdaUpdateWrapper<User> userQueryWrapper = Wrappers.<User>lambdaUpdate()
            .eq(User::getName, "梅长苏")
            .eq(User::getAge,30);
    User user = new User();
    ("123@");
    (user,userQueryWrapper);
}

执行打印的sql

==>  Preparing: UPDATE user SET email=? WHERE (name = ? AND age = ?)
==> Parameters: 123@(String), 梅长苏(String), 30(Integer)
<==    Updates: 1

方法2:只更新少量字段的时候,使用set就行了

@Test
public void update() {
    LambdaUpdateWrapper<User> userQueryWrapper = Wrappers.<User>lambdaUpdate()
            .eq(User::getName, "梅长苏")
            .eq(User::getAge,30)
            .set(User::getEmail,"123@");
    (null,userQueryWrapper);
}

 

 

 

除了set,还可以直接.update

@Test
public void update() {
    new LambdaUpdateChainWrapper<User>(userMapper)
            .eq(User::getName, "梅长苏")
            .eq(User::getAge,30)
            .set(User::getEmail,"123@")
            .update();
}