mybatisplus中QueryWrapper和LambdaQueryWrapper的区别
时间: 2023-11-14 22:10:38 浏览: 50
MybatisPlus是一个基于Mybatis的增强工具,其中QueryWrapper和LambdaQueryWrapper都是MybatisPlus中的查询构造器,用于构建SQL查询条件。它们的主要区别在于构造查询条件的方式不同。
QueryWrapper是使用字符串拼接的方式构造查询条件,可以通过链式调用的方式构建查询条件,但是需要手动输入字段名,容易出现拼写错误等问题。
LambdaQueryWrapper则是使用Lambda表达式的方式构造查询条件,可以避免手动输入字段名的问题,同时也更加直观和易于维护。
因此,如果你更喜欢使用Lambda表达式来构造查询条件,那么LambdaQueryWrapper会是更好的选择。如果你更喜欢使用字符串拼接的方式来构造查询条件,那么QueryWrapper会是更好的选择。
相关问题
MybatisPlus的QueryWrapper和lambdaQueryWrapper的区别
MybatisPlus的QueryWrapper和lambdaQueryWrapper的区别在于:
1. QueryWrapper是使用字符串作为查询条件,而lambdaQueryWrapper是使用Lambda表达式作为查询条件。
2. QueryWrapper需要手动拼接SQL语句,而lambdaQueryWrapper可以通过Lambda表达式自动生成SQL语句。
3. QueryWrapper的查询条件不够直观,而lambdaQueryWrapper的查询条件更加清晰易懂。
4. QueryWrapper的查询条件容易出现拼写错误,而lambdaQueryWrapper的查询条件可以通过IDE的自动补全功能避免拼写错误。
5. QueryWrapper的查询条件不支持类型安全检查,而lambdaQueryWrapper的查询条件可以通过编译器的类型检查来避免类型错误。
总之,lambdaQueryWrapper是MybatisPlus中更加推荐使用的查询条件构造器,它可以提高代码的可读性和可维护性。
在MyBatisPlus中,如何用LambdaQueryWrapper查询指定字段
在MyBatisPlus中,可以使用LambdaQueryWrapper的select方法来查询指定字段。示例如下:
```java
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(User::getId, User::getUserName, User::getEmail)
.eq(User::getAge, 18);
List<User> userList = userMapper.selectList(queryWrapper);
```
在这个示例中,我们创建了一个LambdaQueryWrapper对象,然后使用select方法指定我们要查询的字段。在这个例子中,我们要查询id、userName和email字段。然后我们使用eq方法指定了一个查询条件,即age等于18。最后,我们通过调用selectList方法执行查询并返回结果。
需要注意的是,LambdaQueryWrapper的select方法只支持查询实体类中的属性,而不支持查询关联表中的字段。如果需要查询关联表中的字段,可以使用MyBatis的XML配置文件或注解方式来实现。