queryWrapper自定义修改方法
时间: 2024-06-11 18:04:41 浏览: 129
QueryWrapper是MyBatis-Plus提供的一个实用工具类,它可以方便地构造查询条件,并且支持链式调用。如果需要自定义修改方法,可以通过继承QueryWrapper类并添加自己的方法来实现。
下面是一个示例代码,演示如何在QueryWrapper中添加自定义修改方法:
```java
public class MyQueryWrapper<T> extends QueryWrapper<T> {
public MyQueryWrapper<T> updateColumn(String column, Object value) {
SqlSet set = new SqlSet();
set.setColumn(new SqlKeyword(column));
set.setValue(new SqlKeyword("#{" + column + "}"));
this.sqlSet.add(set);
this.paramNameValuePairs.put(column, value);
return this;
}
}
```
在这个示例代码中,我们添加了一个名为updateColumn的方法,它接收两个参数:列名和列值。这个方法将列名和列值添加到QueryWrapper的sqlSet和paramNameValuePairs中,以便在执行修改操作时使用。
使用自定义的MyQueryWrapper对象可以像下面这样操作:
```java
User user = new User();
user.setId(1L);
user.setUsername("admin");
user.setPassword("123456");
user.setEmail("admin@example.com");
MyQueryWrapper<User> wrapper = new MyQueryWrapper<>();
wrapper.eq("id", user.getId())
.updateColumn("username", user.getUsername())
.updateColumn("password", user.getPassword())
.updateColumn("email", user.getEmail());
userMapper.update(wrapper);
```
在这个示例代码中,我们创建了一个MyQueryWrapper对象,并使用eq方法设置查询条件。然后,我们调用了自定义的updateColumn方法来设置要修改的列和值。最后,我们调用了userMapper的update方法来执行修改操作。
需要注意的是,自定义的修改方法只是对QueryWrapper的扩展,并不会对MyBatis-Plus的原有功能造成影响。因此,使用自定义的MyQueryWrapper对象时,可以像使用QueryWrapper对象一样进行操作。
阅读全文