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