mybatis and 和or的使用

LambdaQueryWrapper<Recipe> lambdaQueryWrapper = new LambdaQueryWrapper<Recipe>()
      .eq(StringUtils.isNotEmpty(req.getEquipmentType()), Recipe::getEquipmentType, req.getEquipmentType())
      .eq(req.getRecipeType() != null, Recipe::getRecipeType, req.getRecipeType())
      .eq(StringUtils.isNotEmpty(req.getEquipmentId()), Recipe::getEquipmentId, req.getEquipmentId())
      .eq(req.getStatus() != null, Recipe::getStatus, req.getStatus())
      .eq(req.getType() != null, Recipe::getType, req.getType())
      .eq(req.getVersion() != null, Recipe::getVersion, req.getVersion())
      .eq(req.getGroupName() != null, Recipe::getGroupName, req.getGroupName())
      .eq(StringUtils.isNotEmpty(req.getConditionExt1()), Recipe::getConditionExt1, req.getConditionExt1())
      .eq(StringUtils.isNotEmpty(req.getConditionExt2()), Recipe::getConditionExt2, req.getConditionExt2())
      .eq("1".equals(req.getInfoExt5()), Recipe::getInfoExt5, "1")
      .isNull(Recipe::getParentId)

      .like(StringUtils.isNotEmpty(req.getRecipeName()), Recipe::getRecipeName, req.getRecipeName())
      .orderByDesc(Recipe::getStatus)
      .orderByDesc(Recipe::getCreateTime)
      .select(Recipe.class, i -> !i.getProperty().equals("body"));
if (!"1".equals(req.getInfoExt5())) {
   lambdaQueryWrapper.and(e->e.isNull(Recipe::getInfoExt5).or().eq(Recipe::getInfoExt5, "0"));
}
IPage<Recipe> page = recipeMapper.selectPage(new Page<>(req.getPageNo(), req.getPageSize()),
      lambdaQueryWrapper
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: MyBatis 和 OR 是两种不同的对象关系映射(ORM)框架。这两个框架都提供了在 Java 程序和数据库之间建立映射关系的功能,但它们有一些不同之处。 MyBatis 是一个轻量级的 ORM 框架,它的核心思想是将 SQL 语句Java 代码进行分离。在 MyBatis 中,我们可以使用 XML 或注解的方式编写 SQL 语句,并通过配置文件或注解来进行映射。MyBatis 提供了丰富的映射配置选项,可以方便地处理复杂的数据库操作。它的执行过程是将 SQL 语句发送给数据库,并将结果封装成 Java 对象返回。 而 OR 则是一个开放关系(OpenRDBMS)的概念,它是指一种允许同一个对象可以有多个关联的表之间建立关系的数据库模型。这种模型允许在多个表之间建立关系,并通过关系进行查询和操作。OR 提供了一种对象导向的方式来操作数据库,可以更自然地表示复杂的业务逻辑。 MyBatis 和 OR 都是将数据库操作封装为 Java 对象的方式,但它们的设计理念和应用场景有所不同。MyBatis 更适用于对 SQL 语句有特殊需求的场景,或对数据库访问有详细控制要求的情况。而 OR 则更适用于面向对象的开发模型,可以更方便地处理对象之间的关系。 综上所述,MyBatis 和 OR 是两种不同的 ORM 框架,它们在设计理念和应用场景上有一些差异。选择使用哪种框架应该根据具体的项目需求和开发风格来决定。 ### 回答2: MyBatis是一种在Java应用程序中使用的开源持久层框架,它通过简化数据库访问的过程来提高开发效率。它使用XML文件或注解来配置和映射Java对象与数据库中的数据表。MyBatis的主要目标是提供灵活的映射方式,以及对SQL语句和数据库操作的细粒度控制。 MyBatis具有以下特点: 1. 简化数据库操作:MyBatis消除了开发人员编写大量重复的JDBC代码的需求。它提供了一个简单而强大的API,使得数据库操作变得更加直观和易于理解。 2. 灵活的映射方式:MyBatis支持多种映射方式,包括基于XML的映射和基于注解的映射。这允许开发人员根据项目需要选择最合适的方式进行对象与数据库表之间的映射。 3. 与SQL语句的细粒度控制:MyBatis允许开发人员直接编写SQL语句,并提供了丰富的功能来处理复杂的查询和数据库操作。这种细粒度的控制使得开发人员能够最大限度地利用数据库的性能和功能。 而OR(Object-Relational Mapping)是一种编程技术,用于将面向对象的程序与关系型数据库之间进行映射和转换。它允许开发人员直接使用面向对象的语言(如Java)来操作数据库,而无需编写大量的SQL语句。 OR的主要优势在于: 1. 提高开发效率:使用OR可以将数据库操作转换为面向对象的操作,使得开发人员能够更加专注于业务逻辑的实现,而不是纠缠于复杂的SQL语句和数据库操作。 2. 减少编码错误:OR提供了一种类型安全的编程方式,可以在编译时检查代码是否符合类型约束。这有助于减少由于编码错误而引起的数据库操作问题。 3. 更好的可维护性:OR将数据库操作封装在对象之中,使得代码更加模块化和可重用。这样,在需要修改数据库操作时,只需修改对应的对象而不需要修改大量的代码。 综上所述,MyBatis和OR都是用于简化和提高数据库操作的工具。MyBatis主要通过提供灵活的映射方式和对SQL语句的细粒度控制来实现,而OR则通过将面向对象的程序与数据库进行映射和转换来实现。它们在不同的场景和项目中都有各自的优势和适用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值