QueryWapper和LambdaQueryWrapper的区别
时间: 2023-10-13 20:04:40 浏览: 134
QueryWrapper和LambdaQueryWrapper都是MyBatis-Plus框架中的查询封装类,用于构建查询条件。它们的主要区别在于使用方式和编写查询条件的方式。
QueryWrapper是一个普通的查询封装类,它使用字符串作为查询条件。你需要手动编写查询条件的字符串表达式,比如使用eq、ne、like等方法来构建条件。
LambdaQueryWrapper是QueryWrapper的增强版,它使用Lambda表达式来构建查询条件。LambdaQueryWrapper通过使用实体类的属性名来构建查询条件,避免了手动编写字符串表达式的繁琐和容易出错的问题。你可以直接调用实体类的属性和方法来构建查询条件,比如使用eq、ne、like等方法。
LambdaQueryWrapper相比于QueryWrapper有以下优点:
1. 编译时检查:LambdaQueryWrapper使用Lambda表达式来构建查询条件,可以在编译时进行类型检查,避免了一些运行时错误。
2. 属性安全:LambdaQueryWrapper使用实体类的属性名来构建查询条件,避免了手写字符串条件时的拼写错误和属性不存在的问题。
3. 代码简洁:LambdaQueryWrapper可以直接调用实体类的属性和方法来构建查询条件,使得代码更加简洁易读。
综上所述,LambdaQueryWrapper相比于QueryWrapper更加类型安全、属性安全,并且代码更加简洁易读。但如果你更习惯使用字符串表达式来构建查询条件,那么QueryWrapper也是一个不错的选择。
相关问题
LambdaQueryWrapper和QueryWapper的区别
LambdaQueryWrapper和QueryWrapper的区别主要有两点。首先,LambdaQueryWrapper是在QueryWrapper的基础上进行了功能扩展,它支持使用Lambda表达式来构建查询条件,使得代码更加简洁易读。而QueryWrapper则是使用普通的方法来构建查询条件。其次,LambdaQueryWrapper还具有类型安全的特性,它能够在编译期进行类型检查,避免了在运行时出现类型错误的情况。而QueryWrapper则不具备这样的特性。
总结来说,LambdaQueryWrapper相比于QueryWrapper在使用上更加方便和灵活,并且能够提供更好的类型安全性。因此,当我们需要在代码中使用Lambda表达式构建查询条件时,可以选择使用LambdaQueryWrapper来替代QueryWrapper。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [全网详解MyBatis-Plus LambdaQueryWrapper的使用说明以及LambdaQueryWrapper和QueryWapper的区别](https://blog.csdn.net/lvoelife/article/details/129027594)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
LambdaQueryWrapper 和querywapper
LambdaQueryWrapper和QueryWrapper都是MyBatis-Plus框架中用于构建查询条件的辅助类。
QueryWrapper是MyBatis-Plus中最初的查询条件构建类,它使用字符串拼接的方式构建查询条件。使用QueryWrapper,我们需要手动编写完整的字符串查询条件,例如:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 20)
.like("name", "John")
.orderByAsc("id");
```
LambdaQueryWrapper是对QueryWrapper的增强,它提供了基于Lambda表达式的方式来构建查询条件,更加简洁和类型安全。使用LambdaQueryWrapper,我们可以直接使用实体类的属性名,而不需要手动编写字符串,例如:
```java
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getAge, 20)
.like(User::getName, "John")
.orderByAsc(User::getId);
```
LambdaQueryWrapper还支持类型安全的属性引用,编译时会进行属性名检查,减少了编写错误的可能性。
总之,LambdaQueryWrapper是在QueryWrapper基础上增加了一种更加简洁、类型安全的构建查询条件的方式。在实际开发中,可以根据个人喜好和项目需求选择使用哪一种。
阅读全文