QueryWrapper<Record> queryWrapper = new QueryWrapper(); queryWrapper.apply("a.goods=b.id and b.storage=c.id and b.goodsType=d.id "); if("2".equals(roleId)){ // queryWrapper.eq(Record::getUserid,userId); queryWrapper.apply(" a.userId= "+userId); } if(StringUtils.isNotBlank(name) && !"null".equals(name)){ queryWrapper.like("b.name",name); } if(StringUtils.isNotBlank(goodstype) && !"null".equals(goodstype)){ queryWrapper.eq("d.id",goodstype); } if(StringUtils.isNotBlank(storage) && !"null".equals(storage)){ queryWrapper.eq("c.id",storage);
时间: 2024-04-18 16:23:41 浏览: 126
QueryWrapper 常用用法
这段代码是使用了MyBatis-Plus的QueryWrapper来建数据库查询条件。首先,创建了一个空的QueryWrapper对象queryWrapper。然后,通过apply方法添加了一个自定义的SQL条件,该条件表示a表的goods字段等于b表的id字段,并且b表的storage字段等于c表的id字段,并且b表的goodsType字段等于d表的id字段。
接下来,通过判断roleId是否等于2,如果是则使用apply方法添加了一个自定义的SQL条件,该条件表示a表的userId字段等于指定的userId值。
然后,通过判断name是否不为空且不等于"null"字符串,如果满足条件则使用like方法添加了一个模糊查询条件,该条件表示b表的name字段包含指定的name值。
接着,通过判断goodstype是否不为空且不等于"null"字符串,如果满足条件则使用eq方法添加了一个等于查询条件,该条件表示d表的id字段等于指定的goodstype值。
最后,通过判断storage是否不为空且不等于"null"字符串,如果满足条件则使用eq方法添加了一个等于查询条件,该条件表示c表的id字段等于指定的storage值。
阅读全文