一、基本介绍
Java中的QueryWrapper
是MyBatis-Plus框架提供的一个查询构造器,用于构建查询条件。
二、基本用法
1、创建QueryWrapper对象:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
2、基本的查询条件:
- 等值条件:
queryWrapper.eq("column_name", value);
- 不等值条件:
queryWrapper.ne("column_name", value);
- 大于条件:
queryWrapper.gt("column_name", value);
- 小于条件:
queryWrapper.lt("column_name", value);
- 大于等于条件:
queryWrapper.ge("column_name", value);
- 小于等于条件:
queryWrapper.le("column_name", value);
3、模糊查询:
queryWrapper.like("column_name", "value"); // 模糊查询 column_name 包含 "value" 的记录
4、多条件查询:
queryWrapper.and(qw -> qw.eq("column_name1", value1).ne("column_name2", value2));
5、排序:
queryWrapper.orderByAsc("column_name");
queryWrapper.orderByDesc("column_name");
6、嵌套查询:
queryWrapper.nested(qw -> qw.eq("column_name", value).or().eq("column_name", anotherValue));
7、自定义SQL片段:
queryWrapper.apply("date_format(create_time, '%Y-%m-%d') = '2022-01-01'");
8、分组查询:
queryWrapper.groupBy("column_name");
9、Having条件:
queryWrapper.having("sum(column_name) > {0}", value);
10、其他条件:
queryWrapper.isNull("column_name");
queryWrapper.isNotNull("column_name");
queryWrapper.in("column_name", Arrays.asList(value1, value2, value3));
queryWrapper.notIn("column_name", Arrays.asList(value1, value2, value3));
queryWrapper.between("column_name", value1, value2);
queryWrapper.notBetween("column_name", value1, value2);
11、Lambda表达式:
MyBatis-Plus还提供了LambdaQueryWrapper
,使用Lambda表达式进行类型安全的字段操作。示例:
LambdaQueryWrapper<User> lambdaQuery = Wrappers.lambdaQuery();
lambdaQuery.eq(User::getUsername, "admin").ne(User::getAge, 25);