LambdaQueryWrapper 是 MyBatis-Plus 提供的条件构造器,它有很多实用的方法,以下是一些主要的方法:
查询相关方法:
1. eq :等于判断,例如 queryWrapper.eq(User::getName, "张三") ,查询名字为“张三”的用户。
2. ne :不等于判断,如 queryWrapper.ne(User::getAge, 20) ,查询年龄不等于 20 的用户。
3. gt :大于判断, queryWrapper.gt(User::getScore, 80) ,查询分数大于 80 的用户。
4. ge :大于等于判断。
5. lt :小于判断。
6. le :小于等于判断。
7. between :范围判断, queryWrapper.between(User::getCreateTime, startTime, endTime) ,查询创建时间在特定时间段内的用户。
8. like :模糊查询, queryWrapper.like(User::getName, "张%") ,查询名字以“张”开头的用户。
9. in :判断是否在给定的集合中,如前面示例中展示的用法。
10. notIn :判断不在给定的集合中。
11. isNull :判断字段是否为 null, queryWrapper.isNull(User::getAddress) ,查询地址为空的用户。
12. isNotNull :判断字段是否不为 null。
逻辑判断相关方法:
1. and :用于连接多个条件,并且所有条件都必须满足。
2. or :用于连接多个条件,只要其中一个条件满足即可。
排序相关方法:
1. orderByAsc :升序排序, queryWrapper.orderByAsc(User::getId) ,按照 id 升序排列查询结果。
2. orderByDesc :降序排序。
其他方法:
1. select :指定要查询的字段, queryWrapper.select(User::getName, User::getAge) ,只查询名字和年龄字段。
2. last :用于拼接 SQL 语句,如 queryWrapper.last("limit 10") ,在生成的 SQL 语句末尾添加“limit 10”。
public class UserService {
@Autowired
private UserMapper userMapper;
public void findUsersByNameLike() {
// 使用 like 方法进行模糊查询,查询名字中包含"张"的用户
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(User::getName, "张");
// 执行查询
userMapper.selectList(queryWrapper);
}
}