一、QueryWrapper 条件查询
在使用Spring Boot开发应用时,经常需要根据条件查询数据库中的数据。QueryWrapper是MyBatis-Plus中强大的查询条件封装类,可以通过它灵活地构建查询条件。
使用QueryWrapper进行条件查询的步骤如下:
1. 在pom.xml中添加MyBatis-Plus的依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
2. 创建Mapper接口
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
3. 构建QueryWrapper对象,设置查询条件
可以使用QueryWrapper的各种方法来设置查询条件,如:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 20); // 年龄等于20
queryWrapper.between("create_time", "2021-01-01 00:00:00", "2021-12-31 23:59:59"); // 创建时间在指定范围内
queryWrapper.like("username", "admin"); // 用户名中含有"admin"
4. 调用Mapper接口的selectList方法执行查询
List<User> userList = userMapper.selectList(queryWrapper);
二、聚合函数的使用
在进行数据库查询时,有时需要统计某些字段的最大值、最小值、总和等聚合操作。MyBatis-Plus提供了实用的聚合函数:
1. count方法:统计记录数
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 20);
Integer count = userMapper.selectCount(queryWrapper);
2. max方法:求最大值
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 18);
Integer maxAge = userMapper.selectObjs(queryWrapper).stream().mapToInt(i -> (Integer) i).max().orElse(0);
3. min方法:求最小值
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", 1);
Integer minStatus = userMapper.selectObjs(queryWrapper).stream().mapToInt(i -> (Integer) i).min().orElse(0);
4. sum方法:求和
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("gender", "male");
Integer sum = userMapper.selectObjs(queryWrapper).stream().mapToInt(i -> (Integer) i).sum();
三、Lambda条件查询
除了使用QueryWrapper,MyBatis-Plus还提供了Lambda条件查询的方式,代码更为简洁。
1. 创建LambdaQueryWrapper对象
使用LambdaQueryWrapper可以直接通过实体类的属性名来设置查询条件,如:
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getAge, 20); // 年龄等于20
lambdaQueryWrapper.between(User::getCreateTime, "2021-01-01 00:00:00", "2021-12-31 23:59:59"); // 创建时间在指定范围内
lambdaQueryWrapper.like(User::getUsername, "admin"); // 用户名中含有"admin"
2. 调用Mapper接口的selectList方法执行查询
List<User> userList = userMapper.selectList(lambdaQueryWrapper);
Lambda条件查询可以极大地简化代码量,提高开发效率。
以上就是关于Spring Boot 条件查询QueryWrapper、聚合函数的使用、Lambda条件查询的介绍,希望能对你有所帮助!
本文来自极简博客,作者:冬天的秘密,转载请注明原文链接:Spring Boot 条件查询QueryWrapper、聚合函数的使用、Lambda条件查询