Bootstrap

mybatis-plus update详解

一、updateById 根据主键id更新,传啥改啥!!! 对未修改的无影响

// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);

举例说明

传参

{
    "id":1,
    "name":"zoriah"
}

controller

/**
 * 修改用户
 *
 * @param user 实体对象
 * @return 修改结果
 */
@ApiOperation(value = "修改用户")
@PutMapping("/update")
public R update(@RequestBody User user) {
    return success(this.userService.updateById(user));
}

SQL

UPDATE t_user SET name='zoriah' WHERE id = 1

使用提示:
在调用updateById方法前,需要在T entity(对应的实体类)中的主键属性上加上@TableId注解。

二、update 根据 whereWrapper 条件更新记录,传啥改啥!!! 可用于批量更新

// 根据 whereWrapper 条件,更新记录
int update(@Param(Constants.ENTITY) T updateEntity, @Param(Constants.WRAPPER) Wrapper<T> whereWrapper);

举例说明

// 作为查询条件
LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(User::getName,"zoriah");
//new出来的对象作为修改值
User user = new User();
user.setTelephone("12345678");
//直接update修改
this.update(user, updateWrapper);

SQL

UPDATE t_user SET telephone='12345678' WHERE name = 'zoriah'

使用提示:
LambdaUpdateWrapper若不能使用,更新mybatis-plus至高版本,或者

LambdaUpdateWrapper<User> updateWrapper = new UpdateWrapper<User>().lambda();
;