兰州网站建设平台分析,开一个工作室需要多少钱,商标注册查询官网入口官网,手机端网页LambdaQueryWrapper 和 QueryWrapper 是 MyBatis-Plus#xff08;简称 MP#xff09;框架中用于构建查询条件的两种常用 Wrapper。它们的主要区别如下#xff1a;
1. 写法和表达方式不同#xff1a; QueryWrapper#xff1a;使用传统的字符串形式构建查询条件#xff0c…LambdaQueryWrapper 和 QueryWrapper 是 MyBatis-Plus简称 MP框架中用于构建查询条件的两种常用 Wrapper。它们的主要区别如下
1. 写法和表达方式不同 QueryWrapper使用传统的字符串形式构建查询条件通过支持链式调用的方式可以方便地拼接多个查询条件。 LambdaQueryWrapper使用 Lambda 表达式构建查询条件可以通过实体类的属性和方法来安全地编写查询条件减少犯错和代码冗余。
2. 类型安全和编译时检查 QueryWrapper由于是字符串形式的条件拼接编译时无法检查其中的错误和类型不匹配问题所以需要开发人员自行保证查询条件的正确性。 LambdaQueryWrapper基于 Lambda 表达式构建查询条件可以在编译阶段进行类型检查编译器可以帮助检测属性名等错误减少运行时出错的可能性。
3. 支持实体属性的引用方式 QueryWrapper需要手动通过字符串形式指定实体类的属性名。 LambdaQueryWrapper可以直接使用实体类的属性名减少手写字符串的风险和不便。 4.举例 假设有一个 User 实体类包含 id、name、age 和 gender 等属性。
1.使用 QueryWrapper
QueryWrapperUser queryWrapper new QueryWrapper();
queryWrapper.ge(age, 18).eq(gender, 女性);ListUser userList userMapper.selectList(queryWrapper);
2.使用 LambdaQueryWrapper
LambdaQueryWrapperUser lambdaQueryWrapper new LambdaQueryWrapper();
lambdaQueryWrapper.ge(User::getAge, 18).eq(User::getGender, 女性);ListUser userList userMapper.selectList(lambdaQueryWrapper);
总结 需要注意的是在某些特殊情况下特别是涉及到复杂的查询逻辑、关联表查询等高级查询需求时QueryWrapper 的灵活性会更加适用。而在普通的单表查询中LambdaQueryWrapper 的简洁性和类型安全性更加优势。 在实际使用中可以根据具体的需求和个人偏好选择适合的 Wrapper 类型或者根据实际情况结合使用它们来满足不同的查询需求。