EntityWrapper 和 QueryWrapper 的 and or like 并列查询的写法

最近做项目遇到了一个条件的拼接,大家都知道 如果用的是mybatis的话由cretrial用example的方式去拼接条件,但是在mybatis-plus当中呢?

 

在这里为大家介绍两种构造的方式:

一种是用EntityWrapper的方式去构造 例如下面:

比如说我们的查询语句是:
select * from user where id in [ 1,2,3] and (user_name like '%'+userName+'%' or address like '%'+address+'%';
这样的sql我们应该去怎样拼接呢?

 EntityWrapper<userEntity> entityEntityWrapper = new EntityWrapper<>();
//在这里我们使用MP的selectPage方法去查,关于MP搭建可以去看之前的博文(关于mybatis-plus的)

Page<userEntity> userList= qdDeviceService.selectPage(new Page<userEntity>(),
//先来构建in的条件
                entityEntityWrapper.in("device_id",ids)
//之后以and连接并列的条件 后面更1=1 来保持成立的确定性
                        .and("1=1")
//之后再以like来拼接你所需要的模糊查询
                        .like("user_name", (String) params.get("userName"))
                        .like("address", (String) params.get("address"))
        );
//以上就是EntityWrapper的方式去查询


//当然再实际的项目当中我们应该对前端传递过来的数据进行校验之后再进行操作,这里就省略了

下面我们再来看一下 QueryWrapper的写法:

QueryWrapper<userEntity> userWrapper = new QueryWrapper<>();
String userName= (String) map.get("userName");
String address= (String) map.get("address");

 
userWrapper.and(wrapper -> wrapper.like("user_name", userName).or().like("address", address);
//当然再这条件之后还可以进行条件的封装,具体拼接的符号可以去参照MP的官网来查看

 以上就是mybatis-plus关于两种条件的添加

 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值