Mybatis-Plus学习---(五)灵活使用wapper条件构造器

本文详细介绍了Mybatis-Plus中的条件构造器,包括AbstractWrapper、QueryWrapper和UpdateWrapper等,以及各种条件判断方法如eq、ne、gt等,并强调了不建议在RPC调用中传递Wrapper。
摘要由CSDN通过智能技术生成

手都敲麻了......翻译自官方

 条件构造器

说明:

  • 以下出现的第一个入参boolean condition表示该条件是否加入最后生成的sql中,例如:query.like(StringUtils.isNotBlank(name), Entity::getName, name) .eq(age!=null && age >= 0, Entity::getAge, age)
  • 以下代码块内的多个方法均为从上往下补全个别boolean类型的入参,默认为true
  • 以下出现的泛型Param均为Wrapper的子类实例(均具有AbstractWrapper的所有方法)
  • 以下方法在入参中出现的R为泛型,在普通wrapper中是String,在LambdaWrapper中是函数(例:Entity::getId,Entity为实体类,getId为字段idgetMethod)
  • 以下方法入参中的R column均表示数据库字段,当R具体类型为String时则为数据库字段名(字段名是数据库关键字的自己用转义符包裹!)!而不是实体类数据字段名!!!,另当R具体类型为SFunction时项目runtime不支持eclipse自家的编译器!!!
  • 以下举例均为使用普通wrapper,入参为MapList的均以json形式表现!
  • 使用中如果入参的Map或者List,则不会加入最后生成的sql中!!!
  • 有任何疑问就点开源码看

警告:

不支持以及不赞成在 RPC 调用中把 Wrapper 进行传输

  1. wrapper 很重
  2. 传输 wrapper 可以类比为你的 controller 用 map 接收值(开发一时爽,维护火葬场)
  3. 正确的 RPC 调用姿势是写一个 DTO 进行传输,被调用方再根据 DTO 执行相应的操作
  4. 我们拒绝接受任何关于 RPC 传输 Wrapper 报错相关的 issue 甚至 pr

AbstractWrapper

说明:

QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类
用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件
注意: entity 生成的 where 条件与 使用各个 api 生成的 where 条件没有任何关联行为

allEq

allEq(Map<R, V> params)
allEq(Map<R, V> params, boolean null2IsNull)
allEq(boolean condition, Map<R, V> params, boolean null2IsNull)
  • 全部eq(或个别isNull)

    个别参数说明:

    params : key为数据库字段名,value为字段值
    null2IsNull : 为true则在mapvaluenull时调用 isNull 方法,为false时则忽略valuenull

  • 例1: allEq({id:1,name:"老王",age:null})--->id = 1 and name = '老王' and age is null
  • 例2: allEq({id:1,name:"老王",age:null}, false)</
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Mybatis-PlusWrapper是一个查询条件构造器,可以用于构建复杂的SQL查询条件。它提供了多种查询条件的封装方法,如eq、ne、gt、ge、lt、le、like、in、notIn等,可以方便地构建出各种复杂的查询条件。同时,Wrapper还支持链式调用,可以更加灵活地构建查询条件。除此之外,Wrapper还提供了一些其他的查询方法,如select、groupBy、orderBy等,可以帮助我们更加方便地构建查询语句。总之,Mybatis-PlusWrapper是一个非常实用的工具,可以帮助我们更加方便地构建复杂的SQL查询条件。 ### 回答2: Mybatis-plus是一款非常优秀的Mybatis增强工具,其内部提供了一个非常强大的Wapper(条件构造器)功能,让我们可以快速便捷地构造出各种复杂的SQL查询语句,同时兼顾了灵活性和可读性。 Mybatis-plus wapper主要是用来构建SQL查询的查询条件,它采用了链式编程的方式,使我们可以像书写自然语言一样,构造出各种条件查询语句。 使用Mybatis-plus wapper的最大好处就在于其方便和快捷。我们只需要通过API直接创建查询对象,然后用链式编程的方式设置查询条件,最后调用查询方法即可。这不仅提高了开发效率,还避免了手写SQL语句带来的错误和风险。 除了快捷和方便,Mybatis-plus wapper还具有极强的灵活性。通过其各种API,可以满足各类SQL查询需求,例如模糊查询、多表联查、自定义字段查询、分组聚合查询等。在实际开发中,我们可以根据业务需求自由选择使用各种API来构建查询条件,以满足不同场景下的查询需求。 总的来说,Mybatis-plus wapper是一款非常实用的工具,其在快捷性、方便性、灵活性等方面均有显著优势,可以大大简化我们的查询代码,提高项目开发效率和易维护性。 ### 回答3: Mybatis-Plus是一个开源的Mybatis增强工具库,它简化了Mybatis的开发流程,提供了一些常用且优化的查询,更新等操作。Mybatis-Plus使用Wapper作为查询条件构造器,它可以通过链式调用的方式方便的构建查询条件Wapper是Mybatis-Plus中核心的查询条件构造器,它的主要作用是生成查询的SQL语句。 Wapper可以灵活的支持多种查询条件的组合,例如:数值、日期、字符串、枚举等类型的比较、like语句、in语句、between语句等。通过Wapper,我们可以方便的构建复杂的查询语句,从而快速的实现数据库操作。 当前,Mybatis-Plus支持两种类型的Wapper:EntityWrapperWrapper。其中EntityWrapper是对实体类进行的条件构造器,可以方便的基于实体类的属性值进行查询,而Wrapper则是一个通用的条件构造器,可以方便的进行各种类型的比较、模糊查询等操作。另外,Wapper还支持and和or的组合方式,可以将多个查询条件进行组合。 在使用Mybatis-Plus进行开发时,我们可以通过QueryWrapper、UpdateWrapper等工具类来实现对数据的CRUD操作。QueryWrapper可以帮助我们构建查询条件,UpdateWrapper可以帮助我们构建更新操作的条件,通过这些工具类,我们可以快速、灵活的实现各种复杂的数据库操作。总之,Wapper是Mybatis-Plus中最重要的组件之一,它可以帮助我们快速、灵活的构建查询条件,从而简化Mybatis使用,并提高了开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

棋_Rachel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值