使用 LambdaQueryWrapper 来生成sql语句,我们有时候需要用到两个查询条件选其中一个。例如  host='kw360.net' and (typename='java' or typename='js') 这样的。那用LambdaQueryWrapper的and和or用法实例如下:

其中关键在红色部分。

LambdaQueryWrapper<SimInfoDo>()
.eq(CharSequenceUtil.isNotBlank(qo.getGroupCode()), SimInfoDo::getGroupCode, qo.getGroupCode())
.and(wq->{
 wq.like(CharSequenceUtil.isNotBlank(qo.getMobile()), SimInfoDo::getMobile, qo.getMobile());
 wq.or().like(CharSequenceUtil.isNotBlank(qo.getIccid()), SimInfoDo::getIccid, qo.getIccid());
})

.eq(qo.getLifecycle()!=null, SimInfoDo::getLifecycle, qo.getLifecycle())
.between(qo.getStartEndTime()!=null&&qo.getEndEndTime()!=null, SimInfoDo::getEndTime, qo.getStartEndTime(),qo.getEndEndTime())
.between(qo.getStartActivateTime()!=null&&qo.getEndActivateTime()!=null, SimInfoDo::getActivateTime, qo.getStartActivateTime(), qo.getEndActivateTime())
.orderByDesc(SimInfoDo::getCreateTime);