MyBatis-Plus LambdaQueryWrapper 分组统计 - 代码示例
要在MyBatis-Plus中使用LambdaQueryWrapper进行分组统计,您可以使用以下代码实现:
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class YourService extends ServiceImpl<YourMapper, YourEntity> implements IService<YourEntity> {
public List<Map<String, Object>> groupAndCount() {
LambdaQueryWrapper<YourEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(YourEntity::getGroupColumn, 'count(1) as count')
.groupBy(YourEntity::getGroupColumn);
return baseMapper.selectMaps(queryWrapper);
}
public IPage<Map<String, Object>> groupAndCountWithPage(int current, int size) {
IPage<YourEntity> page = new Page<>(current, size);
LambdaQueryWrapper<YourEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(YourEntity::getGroupColumn, 'count(1) as count')
.groupBy(YourEntity::getGroupColumn);
return baseMapper.selectMapsPage(page, queryWrapper);
}
}
在上述代码中,YourEntity是您的实体类,YourMapper是您的Mapper接口,YourService是您的Service类。groupAndCount方法使用LambdaQueryWrapper进行分组统计,返回一个List<Map<String, Object>>,其中每个Map代表一条统计结果。groupAndCountWithPage方法使用LambdaQueryWrapper进行分组统计,并支持分页查询,返回一个IPage<Map<String, Object>>。
请根据您的实际情况修改代码中的实体类、Mapper接口和Service类的名称,并确保您已正确配置了MyBatis-Plus的依赖和配置文件。
原文地址: https://www.cveoy.top/t/topic/qmB9 著作权归作者所有。请勿转载和采集!