LambdaQueryWrapper和QueryWrapper区别和具体用法
时间: 2024-08-21 19:00:36 浏览: 47
mybatis-plus QueryWrapper条件查询器
LambdaQueryWrapper和QueryWrapper都是阿里巴巴MybatisPlus框架中用于动态构建SQL查询条件的工具类,它们的主要区别在于语法和使用场景:
1. **LambdaQueryWrapper**:
- 使用的是Java 8引入的lambda表达式,提供了一种简洁、直观的方式来构造复杂的查询条件,例如`lqw.eq("field", value)`表示字段"field"等于"value"。
- 更加易读和易理解,尤其对于那些熟悉函数式编程风格的开发者来说,可以直接写出类似SQL的条件。
- 适用于对复杂查询需求的处理,如链式调用可以组合多个条件。
2. **QueryWrapper**:
- 是传统的基于方法名和参数的形式,每个方法对应数据库中的操作(比如eq、like等),每个参数对应一个值。
- 编程体验稍微繁琐一些,但语法更贴近于MyBatis原生的DSL,适合对性能有较高要求或者对查询灵活性要求较低的情况。
具体用法示例:
```java
// LambdaQueryWrapper
List<User> users = UserMapper.selectList(lq -> lq.where()
.eq("username", "test")
.gt("age", 18));
// QueryWrapper
List<User> users = UserMapper.selectList(new QueryWrapper<User>().eq("username", "test").gt("age", 18));
```
阅读全文