Mybatis-Plus是Mybatis的增强工具包,提供了很多便捷的功能,包括自动生成代码、分页、排序、条件查询等。除了LambdaQueryWrapper,Mybatis-Plus中还有以下几种用于定义查询条件的工具:
-
QueryWrapper: 支持设置查询条件、排序方式等,类似LambdaQueryWrapper,但是使用Java的链式调用方式实现。例如:
QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("name", "Tom").lt("age", 18).orderByDesc("id").last("limit 10"); List<User> users = userMapper.selectList(wrapper);
-
UpdateWrapper: 与QueryWrapper类似,用于设置更新条件。例如:
UpdateWrapper<User> wrapper = new UpdateWrapper<>(); wrapper.set("age", user.getAge()).eq("name", user.getName()); userMapper.update(null, wrapper);
-
LambdaUpdateWrapper: 类似LambdaQueryWrapper,使用Lambda表达式设置更新条件。例如:
LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>(); wrapper.set(User::getAge, user.getAge()).eq(User::getName, user.getName()); userMapper.update(null, wrapper);
-
QueryParam: 用于传递查询条件,在Mapper接口中定义方法时将QueryParam类型参数作为函数参数即可,例如:
List<User> selectByQueryParam(@Param(Constants.WRAPPER) QueryWrapper<User> queryWrapper);
调用时,用QueryWrapper对查询条件进行设置:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "Tom").lt("age", 18).orderByDesc("id").last("limit 10");
userMapper.selectByQueryParam(queryWrapper);
除了以上几个工具,Mybatis-Plus还提供了Wrapper接口,可用于自定义条件查询。同时Mybatis-Plus提供了一些实用的方法,例如in、not in、between等,可以方便地构造查询条件。