mybatisplus 保存或更新
时间: 2023-09-05 07:07:48 浏览: 115
mybatisplus
MyBatis-Plus 提供了 `saveOrUpdate` 方法来实现保存或更新操作。该方法的实现原理是在执行保存操作前先查询数据,如果查询到了数据就执行更新操作,否则执行保存操作。
以下是示例代码:
```java
User user = new User();
user.setName("Tom");
user.setAge(18);
user.setEmail("tom@example.com");
// 根据ID判断是否存在记录,存在则更新,不存在则插入
boolean success = userService.saveOrUpdate(user);
```
如果 `user` 对象中没有设置ID,则会调用 `insert` 方法进行插入操作;如果设置了ID,则会调用 `updateById` 方法进行更新操作。
如果你想要自定义判断是否存在记录的逻辑,可以使用 `Wrapper` 来查询数据,例如:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getEmail, "tom@example.com");
boolean success = userService.saveOrUpdate(user, wrapper);
```
以上代码会根据 `wrapper` 对象指定的条件查询数据,如果查询到了数据就执行更新操作,否则执行保存操作。
阅读全文