QueryWrapper 是 MyBatis-Plus 中用于构建查询条件的条件构造器之一。它提供了丰富的方法,用于构建各种条件,支持链式调用,使得构建查询条件变得简单而灵活。

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

1. 等值条件

  •  eq: 等于

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 25);

2. 不等值条件

  •  ne: 不等于

queryWrapper.ne("age", 25);

3. 模糊查询条件

  •  like: 模糊查询

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

  •  notLike: 不匹配

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

4. 范围查询条件

  •  between: 在范围内

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

  •  notBetween: 不在范围内

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

5. 大小比较条件

  •  gt: 大于

queryWrapper.gt("age", 25);

  •  ge: 大于等于

queryWrapper.ge("age", 25);

  •  lt: 小于

queryWrapper.lt("age", 30);

  •  le: 小于等于

queryWrapper.le("age", 30);

6. 为空/不为空条件

  •  isNull: 为空

queryWrapper.isNull("email");

  •  isNotNull: 不为空

queryWrapper.isNotNull("email");

7. IN 条件

  •  in: 在给定集合内

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

  •  notIn: 不在给定集合内

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

8. 排序

  •  orderByAsc: 升序排序

queryWrapper.orderByAsc("age");

  •  orderByDesc: 降序排序

queryWrapper.orderByDesc("age");

9. 分组

  •  groupBy: 按列分组

queryWrapper.groupBy("age");

10. 嵌套条件

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

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

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


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