大家好,欢迎来到IT知识分享网。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
-
- 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]
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/157652.html