SpringBoot 2.x整合pagehelper实现查询分页功能

一、项目环境
  • spring boot 2.3.0
  • idea 2019.2.3
  • pagehelper 1.3.0
二、引入依赖
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
三、添加配置
#修改application.yml,添加以下内容。

#分页设置
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count=countSql
四、分页代码
    /**
     * @param model 集合
     * @param pageNum 查询页面的起始页码,默认第1页为起始页
     * @param pageSize 查询页面的条目数,默认每页4条数据
     * @return 前端页面
     */    
	@RequestMapping("/list")
    public String list(Model model,
                       @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                       @RequestParam(value = "pageSize", defaultValue = "4") int pageSize
    ) {
        //分页功能
        PageHelper.startPage(pageNum, pageSize);
        List<Goods> goodsList = goodsService.findAll();
        PageInfo<Goods> pageInfo = new PageInfo<>(goodsList);
        model.addAttribute("pageInfo", pageInfo);
        return "admin/goods_list";
    }
五、页面设置
    <div class="goods-panel">
        <table class="goods-list">
            <tr class="goods-title">
                <th>商品编号</th>
                <th>图片</th>
                <th>名称</th>
                <th>价格</th>
                <th>产地</th>
                <th>生产日期</th>
                <th>分类</th>
                <th>操作</th>
            </tr>
            <th:block th:each="g:${pageInfo.list}">
                <tr>
                    <td th:text="${g.goodsId}"></td>
                    <td>
                        <img th:src="${g.picture}" width="80" height="80"/>
                    </td>
                    <td th:text="${g.goodsName}"></td>
                    <td th:text="${g.goodsPrice}"></td>
                    <td th:text="${g.produceAddress}"></td>
                    <td th:text="${#dates.format(g.produceDate,'yyyy-MM-dd')}"></td>
                    <td th:text="${g.category.categoryName}"></td>
                    <td>
                        <a th:href="@{/admin/goods/update_show(goodsId=${g.goodsId})}">修改</a>
                        <a th:href="@{/admin/goods/delete(goodsId=${g.goodsId})}">删除</a>
                    </td>
                </tr>
            </th:block>
        </table>
        <div class="goods-page">
            <p><span th:text="${pageInfo.pageNum}"></span> 页,共 <span th:text="${pageInfo.pages}"></span> 页,总计 <span
                    th:text="${pageInfo.total}"></span> 条记录</p>
            <a th:href="@{/admin/goods/list}">首页</a>
            <a th:href="@{/admin/goods/list(pageNum=${pageInfo.hasPreviousPage}?${pageInfo.prePage}:1)}">上一页</a>
            <a th:href="@{/admin/goods/list(pageNum=${pageInfo.hasNextPage}?${pageInfo.nextPage}:${pageInfo.pages})}">下一页</a>
            <a th:href="@{/admin/goods/list(pageNum=${pageInfo.pages})}">尾页</a>
        </div>
    </div>
六、效果展示

在这里插入图片描述

附:PageInfo封装页面信息,返回给前端页面,下表为一些常用参数说明

参数说明
PageInfo.list结果集
PageInfo.pageNum当前页码
PageInfo.pageSize当前页面显示的数据条目
PageInfo.pages总页数
PageInfo.total数据的总条目数
PageInfo.prePage上一页
PageInfo.nextPage下一页
PageInfo.isFirstPage是否为第一页
PageInfo.isLastPage是否为最后一页
PageInfo.hasPreviousPage是否有上一页
PageHelper.hasNextPage是否有下一页

最后:对你有所帮助的话,记得点赞哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值