UpdateWrapper 是 MyBatis-Plus 中用于构建更新条件的条件构造器。它提供了丰富的方法,用于构建各种更新条件,同样支持链式调用,使得构建更新条件变得简单而灵活。

以下是 UpdateWrapper 的一些常用方法和用法:

1. 等值更新条件

  •  eq: 等于

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("age", 25);

2. 不等值更新条件

  •  ne: 不等于

updateWrapper.ne("age", 25);

3. 模糊查询更新条件

  •  like: 模糊查询

updateWrapper.like("name", "John");

  •  notLike: 不匹配

updateWrapper.notLike("name", "Tom");

4. 范围更新条件

  •  between: 在范围内

updateWrapper.between("age", 20, 30);

  •  notBetween: 不在范围内

updateWrapper.notBetween("age", 20, 30);

5. 大小比较更新条件

  •  gt: 大于

updateWrapper.gt("age", 25);

  •  ge: 大于等于

updateWrapper.ge("age", 25);

  •  lt: 小于

updateWrapper.lt("age", 30);

  •  le: 小于等于

updateWrapper.le("age", 30);

6. 为空/不为空更新条件

  •  isNull: 为空

updateWrapper.isNull("email");

  •  isNotNull: 不为空

updateWrapper.isNotNull("email");

7. IN 更新条件

  •  in: 在给定集合内

updateWrapper.in("age", Arrays.asList(25, 30, 35));

  •  notIn: 不在给定集合内

updateWrapper.notIn("age", Arrays.asList(18, 40));

8. 设置更新值

  •  set: 设置要更新的字段和值

updateWrapper.set("name", "NewName")
             .set("age", 26);

9. 自增/自减操作

  •  **set 中使用 SQL 片段进行自增/自减

updateWrapper.set("age", 26)
             .setSql("age = age + 1");

10. 嵌套条件

UpdateWrapper 同样支持嵌套条件构造,可以通过 nested 方法来构建嵌套条件。
updateWrapper.eq("name", "John")
             .nested(i -> i.gt("age", 25).or().lt("age", 20));

这表示更新名字为 "John",且年龄大于 25 或小于 20 的记录。

以上是 UpdateWrapper 的一些常见用法,通过这些方法,你可以轻松构建各种灵活的更新条件,而无需编写复杂的 SQL 语句。UpdateWrapper 还提供了其他一些方法,如 last 用于追加 SQL 片段、apply 用于根据条件应用 SQL 片段等,具体可查阅 MyBatis-Plus 官方文档。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7054/MyBatis