LambdaQueryWrapper和QueryWrapper有什么区别吗
时间: 2024-04-20 10:21:03 浏览: 230
LambdaQueryWrapper和QueryWrapper是MyBatis-Plus框架中的两个查询条件封装类,它们的主要区别在于使用方式和编写查询条件的方式。
1. QueryWrapper:
QueryWrapper是MyBatis-Plus提供的一种传统的查询条件封装方式,方法类似于传的SQL语句拼接。你可以通过式调用的方式,使用各种条件方法来构建查询,例如eq、ne、like等。示代码如下:
```java
QueryWrapper<User> queryWrapper = new Query<>();
queryWrapper.eq("name", "张三")
.ne("age", 20)
.like("email", "@gmail.com");
List<User> userList = userMapper.selectList(queryWrapper);
```
2. LambdaQueryWrapper:
LambdaQueryWrapper是MyBatis-Plus新增的一种查询条件封装方式,它使用Lambda表达式来构建查询条件,使得代码更加简洁易读。你可以通过Lambda表达式来指定实体类的属性,并使用各种条件方法来构建查询条件。示例代码如下:
```java
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getName, "张三")
.ne(User::getAge, 20)
.like(User::getEmail, "@gmail.com");
List<User> userList = userMapper.selectList(lambdaQueryWrapper);
```
总结一下,LambdaQueryWrapper相比于QueryWrapper,使用Lambda表达式来构建查询条件,使得代码更加简洁易读。但需要注意的是,LambdaQueryWrapper在某些复杂的查询场景下可能会有一些限制,因此在选择使用哪种封装类时,需要根据具体的业务需求来决定。
阅读全文