在MyBatis-Plus框架中,LambdaQueryWrapper
和 QueryWrapper
是用于构建查询条件的两个主要类。它们都是查询条件构造器,用于在查询中生成 WHERE 子句的条件。
QueryWrapper
QueryWrapper
是 MyBatis-Plus 3.x 中引入的条件构造器。它的主要特点是使用字符串作为字段名,并支持链式调用。在使用过程中,需要手动输入字段名的字符串,因此可能存在拼写错误和字段名硬编码的问题。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "John").gt("age", 25).orderByDesc("create_time");
List<User> userList = userMapper.selectList(queryWrapper);
LambdaQueryWrapper
LambdaQueryWrapper
则是在 MyBatis-Plus 3.x 中引入的一种新型的条件构造器。它利用了 Java 8 的 Lambda 表达式,可以通过实体类的属性引用而不是字符串来进行字段名的指定,从而减少硬编码和拼写错误的风险。
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getName, "John").gt(User::getAge, 25).orderByDesc(