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可以有效构造复杂的查询条件。