SpringBoot整合PageHelper實現分頁

  <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>${page-helper.version}</version>
            </dependency>

很簡單,引入註解不需要做攔截器配置,boot會自動配置

查詢代碼示例

PageHelper.startPage(activityPartakeReqDTO.getPageNum(),activityPartakeReqDTO.getPageSize());
EbizActivityCouponDetailInfo ebizActivityCouponDetailInfo=new EbizActivityCouponDetailInfo();
ebizActivityCouponDetailInfo.setActivityId(activityPartakeReqDTO.getActivityId());
ebizActivityCouponDetailInfo.setReceiveId(activityPartakeReqDTO.getUserId());
ebizActivityCouponDetailInfo.setIsReceive(Integer.valueOf(ENUM_COUNPON_RECEIVE_STATUS.ISRECEIVE.getValue()));
List<ReceiveCouponDetailDTO> receiveCouponDetailDTOList=ebizActivityCouponDetailInfoDAO.selectReceiveCouponList(activityPartakeReqDTO.getActivityId(),activityPartakeReqDTO.getUserId());
 PageInfo<ReceiveCouponDetailDTO> ebizActivityCouponDetailInfoPageList=new PageInfo<>(receiveCouponDetailDTOList);

後臺執行sql就是分頁查詢的邏輯: 

==>  Preparing: SELECT count(0) FROM ebiz_activity_coupon_info info LEFT JOIN ebiz_activity_coupon_detail_info detail ON info.coupon_code = detail.coupon_code WHERE info.activity_id = ? AND detail.receive_id = ? 
==> Parameters: 6600601001222000000011(String), fkk(String)
<==    Columns: count(0)
<==        Row: 3
<==      Total: 1
==>  Preparing: SELECT info.coupon_name, info.effective_start_date, info.effective_end_date, detail.receive_id, detail.coupon_code, detail.coupon_num, detail.receive_time FROM ebiz_activity_coupon_info info LEFT JOIN ebiz_activity_coupon_detail_info detail ON info.coupon_code = detail.coupon_code where info.activity_id = ? AND detail.receive_id =? ORDER BY detail.receive_time DESC LIMIT ?, ? 
==> Parameters: 6600601001222000000011(String), fkk(String), 1(Integer), 1(Integer)
<==    Columns: coupon_name, effective_start_date, effective_end_date, receive_id, coupon_code, coupon_num, receive_time
<==        Row: fkk測試優惠券00, null, null, fkk, 1234, 6123222000000014, 2020-06-18 12:42:37
<==      Total: 1 

使用過程中需要注意的一點只有Mapper接口查詢返回的數據纔有分頁信息,如果要對數據進行處理重新轉換爲新的java對象返回,那麼pageInfo的信息就會有誤,因此要把原有返回集合的pageInfo信息拷貝到新集合的pageInfo信息上來

  List<EbizActivityPartakeInfo> ebizActivityPartakeInfoList=ebizActivityPartakeInfoBo.getCustomerList(activityPartakeReqDTO);
        if(ebizActivityPartakeInfoList==null || ebizActivityPartakeInfoList.size()==0){
            return ResultModel.success(ContentModel.error("未查到數據"));
        }
        PageInfo<EbizActivityPartakeInfo> pageInfo=new PageInfo<>(ebizActivityPartakeInfoList);
        List<ActivityPartakeDTO> activityPartakeDTOList=new ArrayList<>();
        for(EbizActivityPartakeInfo ebizActivityPartakeInfo1:pageInfo.getList()){
            ActivityPartakeDTO activityPartakeDTO=new ActivityPartakeDTO();
            BeanUtils.copyProperties(ebizActivityPartakeInfo1,activityPartakeDTO);
            activityPartakeDTO.setIsSign(String.valueOf(ebizActivityPartakeInfo1.getIsSign()));
            if(ebizActivityPartakeInfo1.getSignTime()!=null){
                activityPartakeDTO.setSignDate((DateUtil.formatDate(ebizActivityPartakeInfo1.getSignTime(),"yyyy-MM-dd HH:mm:ss")));
            }
            activityPartakeDTOList.add(activityPartakeDTO);
        }
      
        PageInfo<ActivityPartakeDTO> activityPartakeDTOPageInfo=new PageInfo<>();
       //將原有集合pageInfo信息拷貝到新集合的pageInfo上來
        BeanUtils.copyProperties(pageInfo,activityPartakeDTOPageInfo);
        activityPartakeDTOPageInfo.setList(activityPartakeDTOList);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章