LambdaQueryWrapper 修改
时间: 2023-10-13 21:28:21 浏览: 118
支持连表查询的mybatis-plus
5星 · 资源好评率100%
LambdaQueryWrapper 是 MyBatis-Plus 提供的一个方便构建查询条件的工具类,它可以通过 Lambda 表达式来构建查询条件,使得代码更加简洁易读。如果你需要修改 LambdaQueryWrapper 已有的查询条件,可以使用 LambdaQueryWrapper 的各种方法进行修改。
以下是一些常用的方法:
1. eq:修改等于条件
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三");
wrapper.eq(User::getAge, 18);
wrapper.eq(User::getSex, "男");
wrapper.eq(User::getName, "李四"); // 修改条件为 name = '李四'
```
2. ne:修改不等于条件
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.ne(User::getName, "张三");
wrapper.ne(User::getAge, 18);
wrapper.ne(User::getSex, "男");
wrapper.ne(User::getName, "李四"); // 修改条件为 name <> '李四'
```
3. gt、lt、ge、le:修改大于、小于、大于等于、小于等于条件
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.gt(User::getAge, 18);
wrapper.lt(User::getHeight, 180);
wrapper.ge(User::getWeight, 60);
wrapper.le(User::getSalary, 10000);
wrapper.gt(User::getAge, 20); // 修改条件为 age > 20
wrapper.lt(User::getHeight, 170); // 修改条件为 height < 170
wrapper.ge(User::getWeight, 70); // 修改条件为 weight >= 70
wrapper.le(User::getSalary, 8000); // 修改条件为 salary <= 8000
```
4. in、notIn:修改包含、不包含条件
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.in(User::getName, "张三", "李四", "王五");
wrapper.notIn(User::getAge, 18, 20, 22);
wrapper.in(User::getName, "李四", "王五", "赵六"); // 修改条件为 name in ('李四', '王五', '赵六')
wrapper.notIn(User::getAge, 18, 25); // 修改条件为 age not in (18, 25)
```
5. like、notLike:修改模糊匹配、非模糊匹配条件
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.like(User::getName, "张%");
wrapper.notLike(User::getEmail, "@gmail.com");
wrapper.like(User::getName, "李%"); // 修改条件为 name like '李%'
wrapper.notLike(User::getEmail, "@163.com"); // 修改条件为 email not like '%@163.com'
```
6. and、or:修改逻辑与、逻辑或条件
```java
LambdaQueryWrapper<User> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(User::getName, "张三");
wrapper1.eq(User::getAge, 18);
LambdaQueryWrapper<User> wrapper2 = new LambdaQueryWrapper<>();
wrapper2.eq(User::getName, "李四");
wrapper2.eq(User::getAge, 20);
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.and(wrapper1); // 添加条件:name = '张三' and age = 18
wrapper.or(wrapper2); // 修改条件为:(name = '张三' and age = 18) or (name = '李四' and age = 20)
```
7. orderBy、groupBy:修改排序、分组条件
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.orderByAsc(User::getAge);
wrapper.orderByDesc(User::getSalary);
wrapper.groupBy(User::getSex);
wrapper.orderByAsc(User::getSalary); // 修改条件为 order by salary asc
wrapper.orderByDesc(User::getAge); // 修改条件为 order by age desc
wrapper.groupBy(User::getName); // 修改条件为 group by name
```
以上是一些常用的 LambdaQueryWrapper 修改方法,你可以根据实际需求选择使用。
阅读全文