springboot - 分页插件的使用

pom

注意 ,这两个依赖会有版本冲突问题

   <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
  </dependency>
  <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
    </dependency>

propreties配置文件

pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

模板类

负责储存展示的内容,和分页信息


package com.example.demo.model;

import com.github.pagehelper.PageInfo;
import lombok.Data;

import java.util.List;

@Data
public class PageClass {
    private PageInfo pageInfo;
    private List<Book> bookList;

    public PageClass(PageInfo pageInfo, List<Book> bookList) {
        this.pageInfo = pageInfo;
        this.bookList = bookList;
    }
}

数据层

唯一作用就是查询所有的数据然后交给servcie做分页处理


  @Select("select * from book")
    List<Book>  selectBook();

业务层

 public PageClass getList(int pageNum, int pageSize)  {
        //使用分页插件,核心代码就这一行
        PageHelper.startPage(pageNum, pageSize);
        
      List<Book> bookList = bookDao.selectBook();

        //上面返回的结果集做分页信息参数 
        PageInfo page  = new PageInfo(bookList);
        PageClass pageClass = new PageClass(page,bookList);
       

         //打印下属性
        log.info("当前页数:"+page.getPageNum());
        log.info("每页数量:"+page.getPageSize());
        log.info("当前页面数量:"+page.getSize());
        log.info("总记录数:"+page.getTotal());
        log.info("总页数:"+page.getPages());

        return pageClass;
    }

控制层

  @GetMapping("/itemsPage")
     public String  itemsPage(@RequestParam(value="currentPage", defaultValue="1") int currentPage,@RequestParam(value="pageSize", defaultValue="30") int pageSize ,ModelMap map){

            map.addAttribute("pages",bookServiceImpl.getList(currentPage, pageSize));

            return "pageSelect";
    }

前端模板页

<h1>
    <table>
        <th>Id</th><th>name</th><th>pid</th>
        <#list pages.bookList as bookMsg>
            <tr><td>${bookMsg.id}</td><td>${bookMsg.name}</td><td>${bookMsg.pid}</td></tr>
        </#list>
    </table>
    <#list 1.. pages.pageInfo.pages as index>
        <a href="itemsPage?currentPage=${index}&pageSize=${pages.pageInfo.pageSize}">第${index}页</a>
    </#list>
</h1>

效果图

7925105-77d1c22dea05e25d.png
image.png
7925105-0d983f186b405513.png
image.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

nier6088

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

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

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

打赏作者

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

抵扣说明:

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

余额充值