DTO类继承的父类BaseDTO实现分页

本文介绍了在SpringCloud项目中如何实现分页查询,避免了直接在业务层或Mapper层大量编写分页代码。通过引入PageHelper库,并在配置文件中设置相关参数,然后在DTO类中继承BaseListDTO实现分页属性,使得分页操作更加简洁。重点讲解了BaseListDTO的使用,包括其分页属性和startPage方法。
摘要由CSDN通过智能技术生成


前言

记一篇关于Spring Cloud框架分页的感想


一、分页怎么做?

百度上搜索spring分页会有一堆的文章教会你分页怎么做?然而真正的企业中不会像那样new pageHelper();掉方法传入参数。因为那样会有大量的分页代码在你的业务层,或者在你的mapper层。

同事突然告诉我分页不能用了,让我看看,一调试果然,参数进来了但是没有分页。很尬!

下面就代码说说实际上分页怎么去做!

二、使用步骤

1.引入库

Spring整合:

导入pom.xml

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
 <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>5.1.2</version>
 </dependency>
 <!--分页插件-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>最新版本</version>
</dependency>

配置项目application.yml文件

#bybatis分页插件配置
pagehelper:
  helper-dialect: mysql  #数据库
  reasonable: true
  support-methods-arguments: true
  params: count=countSql

很多的文章都会告诉你怎么写怎么写比如:
service层

@Override
public ResponseResult selectAllStudent(Integer pageNum, Integer pageSize) {
    Map<String,Object> map = new HashMap<>();
    PageHelper.startPage(pageNum,pageSize);
    List<Student>  students = studentMapper.selectAllStudents();
    PageInfo pageInfo = new PageInfo(students);
    long total = pageInfo.getTotal();
    map.put("result",pageInfo);
    map.put("count",total);
    return ResponseResultUtil.success(map);

} 

但是·············

2.继承DTO实现分页

若要进行分页查询,则用封装的请求参数DTO类(ListDTO)继承:BaseListDTO类,即可继承该类中的分页属性:pageSize 和pageNum

这样在去数据库以ListDTO 类作为parameterType进行数据查询时,会自动将pageSize和pageNum两个参数拼到sql语句的最后:limit …

示例:(ListDTO 继承 BaseListDTO)

public class ListDTO extends BaseListDTO {
}

BaseListDTO类代码:


public class BaseListDTO implements Serializable
{
private static final long serialVersionUID = -1L;

 /** 分页页码 */
  private Integer pageNum;
  /** 每页条数 */
  private Integer pageSize;
  /** 模糊查询 字符串 */
  private String searchStr;
  /** 开始时间字符串 */
  private String start;
  /** 结束时间字符串 */
  private String end;

  /** 如果有分页参数则进行分页 如果没有这不进行分页 */
  public void startPage() {
    if (hasPage()) {
      PageHelper.startPage(this.getPageNum(), this.getPageSize());
    }
  }

  /**
   * 判断是否需要分页
   *
   * @return
   */
  public boolean hasPage() {
    // 如果缺少一个参数 都不能进行分页返回false
    if (this.pageNum == null || this.pageSize == null) {
      return false;
    }
    return true;
  }

总结

以上就是今天要讲的内容,本文仅仅简单介绍了pageHelper的使用.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

望舒@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值