mybatisplus update修改后回传id
时间: 2023-08-31 11:40:01 浏览: 600
回答1:
好的,关于mybatis plus的update操作,如果更新成功,会将影响的行数返回,而不会返回更新的记录的id。如果您需要更新后返回更新记录的id,可以使用如下代码:
int result = mybatisPlusMapper.updateById(record);
if (result > 0) {
return record.getId();
}
其中,updateById方法返回的是影响的行数,如果大于0,则表示更新成功。在更新成功后,您可以通过record对象获取更新后的id并返回。
回答2:
在MyBatis Plus中,使用update方法进行数据更新时,默认情况下不会将更新后的id回传。因为在一次更新操作中,id通常是不会发生变化的。
如果希望在更新操作后获取最新的id,可以采取以下两种方式:
- 自己手动设置返回的id:在更新操作之前先获取当前要更新的记录的id,然后执行更新操作,在更新操作执行成功后,手动将id设置为返回值。 例如: ```java User user = new User(); user.setId(1); user.setName("new name");
// 执行更新操作 int affectedRows = userMapper.updateById(user);
// 设置返回的id if (affectedRows > 0) { user.setId(1); }
2. 使用数据库的触发器:创建一个数据库的触发器,在更新操作之后通过触发器将更新后的id返回到Java代码中。
例如:
```java
// 创建触发器
CREATE TRIGGER after_update_user AFTER UPDATE ON user
FOR EACH ROW
BEGIN
SET NEW.id = OLD.id;
END;
然后,在更新操作之后,通过查询获取最新的id即可。
需要注意的是,以上两种方式都有一定的局限性和复杂性,建议在实际使用时根据具体场景和需求来选择合适的方式。
回答3:
在MyBatis Plus中,update()方法用于更新数据库中的数据。在执行update操作后,我们可以通过以下几种方式获取修改后的记录的ID。
- 使用updateById()方法进行更新,并通过getId()方法获取修改后的记录的ID。示例代码如下:
User user = new User();
user.setId(1L); // 要更新的记录的ID
user.setName("new name"); // 更新的字段
boolean result = userMapper.updateById(user);
if (result) {
Long updatedId = user.getId();
// 在执行updateById()方法后,获取修改后的记录的ID
}
- 使用update()方法进行更新,并通过条件查询获取修改后的记录的ID。示例代码如下:
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name", "old name"); // 更新条件,可以根据需要设置
User user = new User();
user.setName("new name"); // 更新的字段
boolean result = userMapper.update(user, updateWrapper);
if (result) {
List<User> updatedUsers = userMapper.selectList(updateWrapper);
if (!updatedUsers.isEmpty()) {
Long updatedId = updatedUsers.get(0).getId();
// 在执行update()方法后,通过条件查询获取修改后的记录的ID
}
}
需要注意的是,在使用update()方法时,如果更新的字段有多条记录满足条件,可以通过selectList()方法获取更新后的记录列表,并从中提取出需要的ID。
以上是两种常用的方式获取MyBatis Plus中update操作后的记录的ID。根据实际的需求和业务逻辑,可以选择适合自己的方式。
阅读全文
相关推荐


















