MP利用构造器实现动态SQL

MybatisPlus利用构造器写动态SQL
项目场景:
SpringBoot+MybatisPlus+redis+jeecg:

问题描述:
今天有一个需求,前端有一个筛选器,可以根据一个数据表中6个字段筛选出这个数据表中的相应数据,这6个字段可传可不传

问题分析:
设计接口时,我把这6个字段封装到一个实体类中,让前端按照规则传入实体类的值。但由于这个实体类中的值不传的话为空,所以需要写一个动态SQL判断这个封装类中的所有值是否为空并拼接进sql语句中。

解决方案:

QueryWrapper<ProjectModel> queryWrapper = new QueryWrapper<>();
queryWrapper = queryWrapper.eq(vclNumber!=null&&vclNumber!="","vclNumber",vclNumber)
      .eq(vclModelName!=null&&vclModelName!="","vclModelName",vclModelName)
      .eq(customerName!=null&&customerName!="","customerName",customerName)
      .eq(linkman!=null&&linkman!="","linkman",linkman)
      .eq(engineModel!=null&&engineModel!="","engineModel",engineModel)
      .eq(repairTypeValue!=null&&repairTypeValue!="","repairTypeValue",repairTypeValue)
              .orderByDesc("create_time");

eq(R column, Object val)/eq(boolean condition, R column, Object val)

此处的“eq”相当于“=”,并对字段进行了非空判断然后动态拼接进sql语句中。其它条件根据实际场景可以灵活运用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值