Wrapper转LambdaQueryWrapper
时间: 2023-11-29 19:45:53 浏览: 98
要将Wrapper转换为LambdaQueryWrapper,可以使用Wrappers类的lambdaQuery方法。具体步骤如下:
1.创建一个Wrapper对象,例如:
```java
Wrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "Tom");
```
2.使用Wrappers类的lambdaQuery方法将Wrapper对象转换为LambdaQueryWrapper对象,例如:
```java
LambdaQueryWrapper<User> lambdaWrapper = Wrappers.lambdaQuery(wrapper);
```
这样就可以将Wrapper对象转换为LambdaQueryWrapper对象了。需要注意的是,lambdaQuery方法需要传入一个Wrapper对象作为参数。
相关问题
QueryWrapper和LambdaQueryWrapper
QueryWrapper和LambdaQueryWrapper都是MyBatis-Plus中的查询构造器,于构建SQL查询条件。
QueryWrapper是一种普通的方法链式调用来构建查询条件,需要手动指定实体类的属性名,不支持类型安全的Lambda表达式。示例代码如下:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "Tom")
.like("email", "@gmail.com")
.in("age", Arrays.asList(18, 20, 25));
List<User> userList = userMapper.selectList(queryWrapper);
```
LambdaQueryWrapper是一种类型安全的Lambda表达式构建查询条件的方式,可以避免手动指定实体类的属性名。示例代码如下:
```java
LambdaQueryWrapper<User> user= new LambdaQueryWrapper<>();
user.eq(User::getState, 1);
user.eq(User::getEnable, 1);
List<User> userList = userMapper.selectList(user);
```
QueryWrapper和LambdaQueryWrapper的区别
QueryWrapper和LambdaQueryWrapper都是MyBatis-Plus框架中的查询条件封装类,用于构建查询条件。
区别在于:
1. LambdaQueryWrapper是QueryWrapper的升级版,使用Lambda表达式来构建查询条件,更加简洁和类型安全。LambdaQueryWrapper可以避免手写字符串字段名,可以直接使用实体类的属性名。
2. QueryWrapper使用的是字符串字段名,需要手动输入字段名,容易出错。
3. LambdaQueryWrapper支持链式调用,可以更加灵活地拼接多个查询条件。而QueryWrapper则需要每次调用方法时创建新的实例。
4. LambdaQueryWrapper在编译时能够进行静态检查,减少运行时错误。
总的来说,LambdaQueryWrapper相比QueryWrapper更加方便、简洁和类型安全,推荐使用LambdaQueryWrapper来构建查询条件。
阅读全文