MyBatis-Plus的超级好用LambdaQueryWrapper

249 阅读1分钟

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);
}

}