LambdaQueryWrapper和QueryWrapper区别
时间: 2023-08-28 12:20:28 浏览: 247
LambdaQueryWrapper和QueryWrapper都是MyBatis-Plus框架中的查询封装类,用于构建查询条件。
QueryWrapper是基于字符串的方式来构建查询条件,使用起来相对较繁琐。例如,要构建一个查询条件为age大于等于18的查询语句,可以使用如下代码:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("age", 18);
```
而LambdaQueryWrapper则是基于Lambda表达式的方式来构建查询条件,使用起来更加简洁和直观。同样的查询条件,使用LambdaQueryWrapper可以写成以下形式:
```java
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.ge(User::getAge, 18);
```
由于LambdaQueryWrapper使用了Lambda表达式,可以直接引用实体类的属性名,避免了手写字符串的问题,并且在编译期间可以进行类型检查,减少了一些错误发生的可能性。同时,LambdaQueryWrapper还提供了更加丰富的查询方法,如eq、gt、lt等,方便进行复杂的查询操作。
总的来说,LambdaQueryWrapper相比QueryWrapper更加简洁、直观,并且具有更好的类型安全性。因此,在使用MyBatis-Plus框架时,推荐使用LambdaQueryWrapper来构建查询条件。
阅读全文