一.LambdaQueryWrapper介绍
LambdaQueryWrapper是MyBatis-Plus中的一个类,用于在Java代码中使用Lambda表达式来构建数据库查询条件。它是对QueryWrapper的增强版本,能够更加便捷地进行条件封装。
使用LambdaQueryWrapper可以让你以Lambda表达式的方式编写数据库查询条件,这种方式相比传统的字符串拼接方式更加类型安全和直观。LambdaQueryWrapper可以结合实体类的字段名来编写查询条件,避免了手写字段名字符串可能带来的拼写错误和不易维护的问题。
例如,在MyBatis-Plus中,你可以这样使用LambdaQueryWrapper来查询符合条件的记录:
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getAge, 25).like(User::getName, "Tom");
List<User> userList = userDao.selectList(wrapper);
这段代码使用LambdaQueryWrapper构建了一个查询条件:查询年龄等于25并且姓名包含"Tom"的用户列表。
二.LambdaQueryWrapper常用查询方法条件
LambdaQueryWrapper是用于构建数据库查询条件的工具类,它支持使用Lambda表达式来编写查询条件,相比传统的字符串拼接方式更加类型安全和直观。以下是LambdaQueryWrapper常用的查询条件方法及其作用:
-
eq:等于,例如
wrapper.eq(User::getAge, 25)
表示查询年龄等于25的记录。 -
ne:不等于,例如
wrapper.ne(User::getAge, 30)
表示查询年龄不等于30的记录。 -
gt、ge:大于、大于等于,例如
wrapper.gt(User::getAge, 20)
表示查询年龄大于20的记录。 -
lt、le:小于、小于等于,例如
wrapper.lt(User::getAge, 30)
表示查询年龄小于30的记录。 -
like、notLike:模糊查询、不包含查询,例如
wrapper.like(User::getName, "Tom")
表示查询姓名包含"Tom"的记录。 -
isNull、isNotNull:空值查询、非空值查询,例如
wrapper.isNull(User::getEmail)
表示查询邮箱字段为空的记录。 -
in、notIn:包含在列表中、不包含在列表中,例如
wrapper.in(User::getId, Arrays.asList(1, 2, 3))
表示查询ID在指定列表中的记录。 -
between、notBetween:在某个范围内、不在某个范围内,例如
wrapper.between(User::getAge, 20, 30)
表示查询年龄在20到30之间的记录。 -
orderBy:排序,例如
wrapper.orderByAsc(User::getAge)
表示按年龄升序排序。 -
and、or:逻辑与、逻辑或,可以用来组合多个条件,例如
wrapper.eq(User::getAge, 25).and(wrapper.like(User::getName, "Tom"))
表示查询年龄等于25并且姓名包含"Tom"的记录。