分页查询两种实现

本文介绍了在Java中实现分页查询的一种方式,通过在serviceImpl中设置分页参数并利用PageHelper进行分页,然后将查询结果转换为DTO对象,包含详细的数据填充过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分页查询

serviceImpl

public PageInfo<ProjectDTO> getPage(Integer pageNum, Integer pageSize, ProjectParam projectParam) {

        Project project = new Project();

        project.setName(projectParam.getName());

        project.setProjectType(projectParam.getProjectType());

        project.setIsSubmit(true);  project.setAreaIdList(userAreaService.getSonIdList(UserUtil.

getCurrentAreaId()));

       Page page = PageHelper.startPage(pageNum, pageSize);

       List<Project>projectList=projectMapper.selectList(project);

       List<ProjectDTO> dtoList = Lists.newArrayList();

       for (Project item : projectList) {

     ProjectDTO dto = ProjectDTO.adapt(item);

     BeanUtils.copyProperties(item,dto);      dto.setAreaName(userAreaService.getById(item.getAreaId()).

getUserAreaName());        dto.setOwnerUnitName(ownerUnitService.getById(

item.getOwnerUnitId()).getName());

dto.setBuildingCount(projectPlanService.getCountByProjectId(item.getId()));

dtoList.add(dto);}

        PageInfo pageInfo = new PageInfo(page);

        pageInfo.setList(dtoList);

        return pageInfo;}

serviceImpl

public PageModel<Product> page(ProductListRequest params) {
    IPage<ProductEntity> productEntitiesIPage = dao.getProductListByAdmin(
            params.getKeywords(),
            params.getCategoryId(),
            params.getProductId(),
            params.getLaunchStatus(),
            params.getStartCreateTime(),
            params.getEndCreateTime(),
            Optional.ofNullable(params.getSortedBy()).orElse("product_id"),
            Optional.ofNullable(params.getSortedType()).orElse("desc"),
            //分页参数
            new Page<>(params.getPageNum(), params.getPageSize()));
    List<Product> products = new ArrayList<>();
    productEntitiesIPage.getRecords().forEach(item -> products.add(factory.build(item)));
    PageModel<Product> productPage = new PageModel<>();
    productPage.setPageNum((productEntitiesIPage.getCurrent()));
    productPage.setPageSize(productEntitiesIPage.getSize());
    productPage.setTotal(productEntitiesIPage.getTotal());
    productPage.setRows(products);
    return productPage;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值