LambdaQueryWrapper和QueryWrapper有什么区别?
时间: 2023-11-29 07:45:39 浏览: 223
LambdaQueryWrapper和QueryWrapper都是MyBatis-Plus中的查询构造器,它们的主要区别在于LambdaQueryWrapper使用Lambda表达式来构建查询条件,而QueryWrapper使用普通的字符串来构建查询条件。LambdaQueryWrapper的优点是可以写实体属性,而不是数据库字段,这样就不用担心数据库字段错误,只能写模型类中包含的部分属性。而QueryWrapper则需要手动输入数据库字段名,容易出错。此外,LambdaQueryWrapper还支持类型安全,可以在编译时检查类型错误。
以下是LambdaQueryWrapper和QueryWrapper的使用示例:
1.使用LambdaQueryWrapper构建查询条件
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三").gt(User::getAge, 18);
List<User> userList = userMapper.selectList(wrapper);
```
2.使用QueryWrapper构建查询条件
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "张三").gt("age", 18);
List<User> userList = userMapper.selectList(wrapper);
```
阅读全文