提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 1、eq(column, value)
- 2、ne(column, value)
- 3、ne(boolean condition, R column, Object val)
- 4、gt(column, value)、ge(column, value)、lt(column, value)、le(column, value)
- 5、between(column, value1, value2)
- 6、like(column, value)、likeLeft(column, value)、likeRight(column, value)
- 7、in(column, values)、in(column, coll)、notIn(column, values)
- 8、isNull(column)、isNotNull(column)
- 9、or()
- 10、groupBy(column)
- 11、orderByDesc(column)
前言
在 MyBatis-Plus 中,Wrappers
是一个用于构建条件查询的工具类。通过 Wrappers
类,可以方便地构建各种查询条件,例如等于、不等于、大于、小于、模糊匹配等条件。
Wrappers
类提供了一系列静态方法来创建不同类型的查询条件,常用的方法包括:
Wrappers.<T>query()
:创建一个空的查询条件。Wrappers.<T>lambdaQuery()
:创建一个 LambdaQueryWrapper 对象,用于使用 Lambda 表达式构建查询条件。Wrappers.<T>update()
:创建一个 UpdateWrapper 对象,用于构建更新操作的条件。Wrappers.<T>lambdaUpdate()
:创建一个 LambdaUpdateWrapper 对象,用于使用 Lambda 表达式构建更新操作的条件。
通过使用 Wrappers
类,可以使得 MyBatis-Plus 的条件构造更加灵活和易用。
1、eq(column, value)
等于指定值
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery().eq(Student::getStuAge, 24);
//相当于sql语句中的“=”,sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (stu_age = 24)]
2、ne(column, value)
不等于指定值
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery().ne(Student::getStuAge, 1);
//相当于sql语句中的“<>”,sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (stu_age <> 1)]
3、ne(boolean condition, R column, Object val)
不等于指定值
condition:为true,条件生效;为false,条件忽略.
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery().ne(false,Student::getStuAge, 1);
//sql: [SELECT id,stu_name,stu_age,birth_date FROM student]
4、gt(column, value)、ge(column, value)、lt(column, value)、le(column, value)
分别是大于指定值、大于等于指定值、小于指定值、小于等于指定值
以下只以le(column, value)做测试,其他类似
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery().le(Student::getStuAge, 100);
//相当于sql语句中的“<=”,sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (stu_age <= 100)]
5、between(column, value1, value2)
在两个值之间
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery()
.between(Student::getStuAge, 20,100);
//sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (stu_age BETWEEN 20 AND 100)]
6、like(column, value)、likeLeft(column, value)、likeRight(column, value)
模糊匹配指定值
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery()
.like(Student::getStuName, "张");
//相当于sql语句中的“%张%”,sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (stu_name LIKE '%张%')]
左匹配(右匹配类似)
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery()
.likeLeft(Student::getStuName, "张");
//相当于sql语句中的“%张”,sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (stu_name LIKE '%张')]
7、in(column, values)、in(column, coll)、notIn(column, values)
在指定值列表中
第一种in(column, values):第二个参数为可变参数
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery()
.in(Student::getStuAge, 1,24,5,34);
//sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (stu_age IN (1,24,5,34))]
第二种in(column, coll):第二个参数为集合
List<Integer> integers = new ArrayList<>();
Collections.addAll(integers, 1, 24, 5, 34);
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery()
.in(Student::getStuAge, integers);
//sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (stu_age IN (1,24,5,34))]
notIn类似
8、isNull(column)、isNotNull(column)
判断列的值是否(不)为 null
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery()
.isNull(Student::getBirthDate);
//sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (birth_date IS NULL)]
9、or()
或者
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery()
.eq(Student::getStuAge,24)
.or()
.eq(Student::getStuName,"张三");
//相当于sql语句中的“or”,sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (stu_age = 24 OR stu_name = "张三")]
10、groupBy(column)
分组
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery()
.select(Student::getBirthDate)
.groupBy(Student::getBirthDate);
//sql: [SELECT birth_date FROM student GROUP BY birth_date]
11、orderByDesc(column)
降序
LambdaQueryWrapper<Student> queryWrapper = Wrappers.<Student>lambdaQuery()
.eq(Student::getStuAge, 24)
.orderByDesc(Student::getId);
//sql: [SELECT id,stu_name,stu_age,birth_date FROM student WHERE (stu_age = 24) ORDER BY id DESC]