|
mybatis plus统计SUM,使用QueryWrapper.select
在 MyBatis-Plus 中,如果你想使用 `QueryWrapper` 统计某个字段的总和(SUM),可以使用 `select` 方法来指定需要查询的字段。以下是一个简单的示例,演示如何使用 `QueryWrapper` 进行 SUM 操作,并以中文显示结果。
### 示例代码
假设我们有一个名为 `User` 的实体类,其中有一个 `age` 字段,我们想要统计所有用户的年龄总和。
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.mapper.BaseMapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import org.springframework.stereotype.Service;
- @Service
- public class UserService extends ServiceImpl<BaseMapper<User>, User> {
- public Integer getTotalAge() {
- // 创建 QueryWrapper
- QueryWrapper<User> queryWrapper = new QueryWrapper<>();
- // 使用 select 方法指定需要查询的字段
- queryWrapper.select("SUM(age) AS totalAge"); // 统计年龄总和,并给结果起个别名
- // 执行查询
- List<Map<String, Object>> result = this.listMaps(queryWrapper);
- // 获取总和
- if (!result.isEmpty()) {
- return (Integer) result.get(0).get("totalAge");
- }
- return 0; // 如果没有结果,返回 0
- }
- }
复制代码
### 代码说明
1. **创建 `QueryWrapper` **:使用 `QueryWrapper<User>` 创建一个查询条件构造器。
2. **使用 `select` 方法**:调用 `select` 方法并传入 `SUM(age) AS totalAge` ,这将统计 `age` 字段的总和,并将结果命名为 `totalAge` 。
3. **执行查询**:使用 `listMaps(queryWrapper)` 方法执行查询,并返回一个包含结果的列表。
4. **获取总和**:从查询结果中提取总和。如果查询结果不为空,则返回总和;否则返回 0。
### 注意事项
- 确保在使用 MyBatis-Plus 时已经正确配置了相关的依赖和环境。
- 如果你的 `age` 字段是 `Integer` 类型,确保在数据库中对应的列也支持数值的求和操作。
|
|