<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);