MyBatis Plus的条件构造器能干什么?

Mybatis Plus提供了多种条件构造器,可以用于创建复杂的查询条件:

1. QueryWrapper

最常用的条件构造器:

QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("id", 1);    // = 
wrapper.ge("age", 18);  // >=

2. LambdaQueryWrapper

Lambda表达式条件构造器:

LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();

queryWrapper.eq(User::getId, 1)
            .ge(User::getAge, 18);

3. StringWrapper

构造SQL条件:

StringWrapper wrapper = new StringWrapper("name like concat('%',#{name}, '%')");
wrapper.setString("name", "John");

4. CollectionWrapper

构造IN条件:

CollectionWrapper<String> wrapper = new CollectionWrapper<>();
wrapper.in("id", Arrays.asList(1, 2, 3));  

5. MapWrapper

构造map条件:

Map<String, Object> map = new HashMap<>();
map.put("age", 18);

MapWrapper<User> wrapper = new MapWrapper<>(map);

通过这些条件构造器,可以生成不同形式的查询条件:

  • QueryWrapper
  • LambdaQueryWrapper
  • StringWrapper
  • CollectionWrapper
  • MapWrapper

然后通过:

userMapper.selectList(wrapper);  

实现动态查询。

同时还支持链式调用:

wrapper.eq(...)
      .ne(...)     
      .like(...)

这种简洁的API可以有效构造复杂的查询条件。