mybatis plus不使用UpdateWrapper修改指定字段
时间: 2023-12-03 15:02:45 浏览: 137
您可以使用MyBatis Plus提供的Lambda Update操作来修改指定字段,而不需要使用UpdateWrapper。以下是一个示例:
```
public void updateUser(User user) {
LambdaUpdateWrapper<User> updateWrapper = Wrappers.lambdaUpdate();
updateWrapper.set(User::getName, user.getName());
updateWrapper.set(User::getAge, user.getAge());
updateWrapper.eq(User::getId, user.getId());
userMapper.update(null, updateWrapper);
}
```
在上面的示例中,我们使用LambdaUpdateWrapper设置要更新的字段,并使用eq方法设置要更新的记录条件。最后,我们将更新操作应用于MyBatis Plus提供的userMapper对象。
相关问题
mybatis-plus 通过UpdateWrapper更新指定列
Mybatis-Plus 提供了 UpdateWrapper 类来构建更新的条件,可以使用 UpdateWrapper 来更新指定列。
假设有一个 user 表,其中有 id、name、age、email 四个字段,现在需要更新某个用户的 name 和 email 字段,可以通过以下代码实现:
```java
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", 1)
.set("name", "newName")
.set("email", "newEmail");
userMapper.update(null, updateWrapper);
```
在上面的代码中,首先创建了一个 UpdateWrapper 对象,然后使用 eq 方法设置更新的条件,这里是 id 等于 1。接着使用 set 方法分别设置要更新的 name 和 email 字段,最后调用 userMapper 的 update 方法,第一个参数传入 null,表示更新所有符合条件的记录,第二个参数传入 updateWrapper 对象,表示更新的条件和要更新的列。
需要注意的是,在使用 UpdateWrapper 更新指定列时,需要在 set 方法中使用列名(字符串)来指定要更新的列,而不是使用实体类的属性名。
mybatis plus使用条件构造但不使用UpdateWrapper、LambdaUpdateWrapper修改指定字段
如果您想使用条件构造,但不想使用UpdateWrapper或LambdaUpdateWrapper来修改指定字段,可以使用MyBatis Plus提供的Update方法。以下是一个示例:
```
public void updateUser(User user) {
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("name", user.getName());
updateWrapper.set("age", user.getAge());
updateWrapper.eq("id", user.getId());
userMapper.update(user, updateWrapper);
}
```
在上面的示例中,我们使用UpdateWrapper设置要更新的字段,并使用eq方法设置要更新的记录条件。然后,我们将User对象作为第一个参数传递给userMapper的update方法,以便MyBatis Plus可以将User对象中的值与数据库中的值进行比较,并仅更新不同的字段。这种方法使用了MyBatis Plus提供的Update方法,因此它仍然依赖于MyBatis Plus的特定功能。
阅读全文