MyBatis Plus提供了多种方式来实现查询操作:
1. 基础查询
// 根据ID查询
User user = userMapper.selectById(1);
// 条件查询,Wrapper是条件构造器
List<User> users = userMapper.selectList(new QueryWrapper<User>());
// 分页查询
IPage<User> page = userMapper.selectPage(new Page<>(1, 10), null);
2. Lambda 查询
LambdaQuery<User> query = new LambdaQuery<>();
query.eq(User::getId, 1);
List<User> users = userMapper.selectList(query);
3. 结果映射
List<UserDTO> dtos = userMapper.selectDTOList(new QueryWrapper<>());
// selectDTOList 是 SQL查询,将结果映射为 UserDTO
4. 分组查询
List<Map<String, Object>> maps = userMapper
.selectMaps(new QueryWrapper<User>().groupBy("country"));
5. 子查询
List<User> users = userMapper.selectBySubQuery(new LambdaQueryWrapper<User>()
.in(User::getAge, new LambdaQueryWrapper<User>().select(User::getAge)));
6. 动态 SQL 查询
// 通过@Where注解
public List<User> selectByFilter(@Param("filter") String filter);
以上方法可以实现 MyBatis Plus 的各种查询操作。
主要特点是:
- 提供简单易用的Java API进行查询
- 简化了SQL构建过程
- 通过Wrapper实现条件构建
- 支持Lambda查询