springBoot中实现分页查询

小咪咪 2023-09-29 19:06 69阅读 0赞

分页查询功能

1.创建实体类

1.根据需求创建请求实体类

  1. /**
  2. *分页查询
  3. */
  4. @Data
  5. public class InquirySheetQueryPageVo {
  6. @ApiModelProperty(notes = "询价单号")
  7. private Integer requestForQuotationId;//询价单号
  8. @ApiModelProperty(notes = "法人id")
  9. private Integer legalPersonId;//法人id
  10. @ApiModelProperty(notes = "询价日期")
  11. private Date createTime;
  12. @ApiModelProperty(notes = "创建开始日期")
  13. private Date createStartTime;
  14. @ApiModelProperty(notes = "创建结束日期")
  15. private Date createEndTime;
  16. @ApiModelProperty(notes = "询价开始日期")
  17. @NotNull(message = "询价开始日期为空")
  18. private Date startTime;
  19. @ApiModelProperty(notes = "询价结束日期")
  20. @NotNull(message = "询价结束日期为空")
  21. private Date endTime;
  22. @ApiModelProperty(notes = "供应商编码")
  23. private String vendor;
  24. @ApiModelProperty(notes = "询价状态")
  25. private Integer inquiryStatus;
  26. @ApiModelProperty(notes = "询价类型")
  27. private Integer type;
  28. private Integer pageIndex;
  29. private Integer pageSize;
  30. }

创建要响应的实体类

  1. /**
  2. * 分页查询返回类型
  3. */
  4. @Data
  5. public class InquirySheetQueryPageFanVo {
  6. private Integer totalPage;//总页数
  7. private Integer totalNumber;//总条数
  8. private List<InquirySheetQueryPageFansVo> dataList;//数据
  9. }

2.controller层代码

  1. @RestController
  2. @RequestMapping("/inquiryList")
  3. @Api(value="SwaggerController" ,description="询价清单模块")
  4. @CrossOrigin//支持跨域
  5. public class InquirySheetController {
  6. // 注入
  7. @Autowired
  8. private InquirySheetService inquirySheetService;
  9. // 分页查询
  10. @PostMapping("/search")
  11. @ApiOperation("分页查询")
  12. public ResultVo queryPage(@RequestBody InquirySheetQueryPageVo inquirySheetQueryPageVo) {
  13. System.out.println(inquirySheetQueryPageVo);
  14. List<InquirySheetQueryPageFansVo> lists=inquirySheetService.queryPage(inquirySheetQueryPageVo);
  15. // 使用pageInfo中的方法,内部封装了我们所有的数据
  16. PageInfo<InquirySheetQueryPageFansVo> pageInfo=new PageInfo<>(lists);
  17. InquirySheetQueryPageFanVo inlist=new InquirySheetQueryPageFanVo();
  18. inlist.setTotalNumber(pageInfo.getPageSize());
  19. inlist.setTotalPage(pageInfo.getPages());
  20. inlist.setDataList(lists);
  21. return ResultPlsVo.success(inlist);
  22. }
  23. }

2.service层代码–接口实现类

  1. @Service
  2. public class InquirySheetServiceImpl implements InquirySheetService {
  3. @Autowired
  4. private InquirySheetDao inquirySheetDao;
  5. // 首页的分页查询
  6. @Override
  7. public List<InquirySheetQueryPageFansVo> queryPage(InquirySheetQueryPageVo inquirySheetQueryPageVo) {
  8. //使用分页插件功能、Mapper接口方式的调用,推荐这种使用方式。
  9. Integer pageSize =inquirySheetQueryPageVo.getPageSize();//每页显示条数
  10. Integer pageIndex=inquirySheetQueryPageVo.getPageIndex();//当前页
  11. // 参数1:当前页,参数2:每页条数
  12. // 注意:在查询之前使用
  13. PageHelper.startPage(pageIndex,pageSize);
  14. List<InquirySheetQueryPageFansVo> lists=inquirySheetDao.queryPage(inquirySheetQueryPageVo);
  15. return lists;
  16. }
  17. }

3.dao层代码

  1. @Mapper
  2. public interface InquirySheetDao {
  3. // 首页分页查询
  4. List<InquirySheetQueryPageFansVo> queryPage(InquirySheetQueryPageVo inquirySheetQueryPageVo);
  5. }

4.xml中的sql语句

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.xyh.inquiry.dao.InquirySheetDao">
  4. <!--
  5. namespace:接口的包路径名称
  6. id:接口中对应的方法名称
  7. resultType:返回的数据类型
  8. parameterType:接收的数据类型
  9. -->
  10. <!-- 首页分页查询-->
  11. <select id="queryPage" resultType="com.xyh.inquiry.domain.InquirySheet.InquirySheetQueryPageFansVo">
  12. select xt.id,xt.requestForQuotationId,xt.createTime,xt.startTime,
  13. xt.endTime,xt.inquiryStatus,zd.name inquiryStatusName,xt.creatorName,le.legalPlantName legalPersonName from legalplant le
  14. LEFT JOIN xjttable xt on le.id=xt.legalPersonId
  15. LEFT JOIN legal_supp ls on le.id=ls.legalPersonId
  16. LEFT JOIN supplier su on su.id=ls.gongyingId
  17. LEFT JOIN zidian zd on zd.id=xt.inquiryStatus
  18. <where>
  19. <if test="legalPersonId !=null">
  20. and xt.legalPersonId=#{legalPersonId}
  21. </if>
  22. <if test="requestForQuotationId !=null">
  23. and xt.requestForQuotationId=#{requestForQuotationId}
  24. </if>
  25. <if test="createStartTime !=null">
  26. and xt.createStartTime >=#{createStartTime}
  27. </if>
  28. <if test="createEndTime !=null">
  29. and xt.createEndTime <=#{createEndTime}
  30. </if>
  31. <if test="startTime !=null">
  32. and xt.startTime >=#{startTime}
  33. </if>
  34. <if test="endTime !=null">
  35. and xt.endTime <=#{endTime}
  36. </if>
  37. <if test="vendor !=null and vendor !=''">
  38. and su.supplierCode=#{vendor}
  39. </if>
  40. <if test="type !=null">
  41. and xt.type <=#{type}
  42. </if>
  43. <if test="inquiryStatus !=null">
  44. and xt.inquiryStatus <=#{inquiryStatus}
  45. </if>
  46. </where>
  47. GROUP BY xt.requestForQuotationId
  48. ORDER BY xt.createTime
  49. </select>
  50. </mapper>

发表评论

表情:
评论列表 (有 0 条评论,69人围观)

还没有评论,来说两句吧...

相关阅读

    相关 springboot实现

    这里项目是springboot,mybatis,thymeleaf,实现我自制的商城项目后台页面的分页功能。 [参考我之前总结的分页,简单的处理一下就可以了][Link 1