在编写代码的过程中我们常常会遇到下面的业务场景:我们需要根据传进来的参数来去进行拼接查询,例如当前端传过来的参数是base,那么我们就需要在Mybatis-Plus的条件构造其中写出如下语句:
public PageUtils queryBaseAttrBase(Map<String, Object> params, Long catelogId, String attrType) {
//params表示前端传递的各种信息,例如分页信息等(本实例中可忽略)
//catelogId表示该实体中的主键ID(本实例中可忽略)
//attrType表示前端传递过来的类型条件,该实例中用这个字段来判断
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper .eq("attr_type","base".equalsIgnoreCase(attrType)?1:0);
该条件构造器的意思大致是:当传进来的参数在忽略大小写的情况下为“base”时,那么就拼接attr_type="1"的条件,若传进来的参数不为“base”时,就拼接attr_type="0"的条件。
在条件构造其中就相当于做了一个简单的判断,如果涉及到更加复杂的业务场景,可以自行在java中添加判断条件进行条件构造器的动态构造。