SpringBoot中使用PageHelper分页插件

SpringBoot中使用PageHelper分页插件

1、导入PageHelper的依赖包

<!--pageHelper-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.5</version>
</dependency>

2、基本配置

# 指定数据库,不指定的话会默认自动检测数据库类型
pagehelper.helperDialect=mysql
# 是否启用分页合理化。
# 如果启用,当pagenum<1时,会自动查询第一页的数据,当pagenum>pages时,自动查询最后一页数据;
# 不启用的,以上两种情况都会返回空数据
pagehelper.reasonable=true
# 默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。
pagehelper.supportMethodsArguments=true
# 用于从对象中根据属性名取值,
# 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值,
# 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
pagehelper.params=count=countSql

3、Dao层

<select id="getAllType" resultType="Type">
    select * from t_type
</select>

**主要:**这里的查询语句结束以后,一定不能加分号,因为加了分号之后当进行limit分页的时候会自动变成select * from t_type;limit的SQL形式,导致出错;

4、Service层

@Override
public List<Type> getAllType() {
    return typeMapper.getAllType();
}

5、Controller层

@Controller
@RequestMapping("/admin")
public class TypeController {

    @Autowired
    TypeService typeService;

    @GetMapping("/types")
    public String types(Model model,Integer pageNum){

        pageNum = pageNum == null ? 1 : pageNum;

        //设置分页规则
        PageHelper.startPage(pageNum,10);
        List<Type> allType = typeService.getAllType();
        //返回分页信息参数
        PageInfo<Type> typePageInfo = new PageInfo<>(allType);
        model.addAttribute("page",typePageInfo);
        return "admin/types";
    }

}

当要进行下一页或者上一页的时候,只需更改pageNum的值,在html中进行传值

6、HTML

<tbody>
    <!--循环遍历要进行分页的元素-->
    <tr th:each="type,iterStat : ${page.getList()}">
        <td th:text="${iterStat.count}">1</td>
        <td th:text="${type.getName()}">刻意练习清单</td>
        <td>
            <a href="#" th:href="@{/admin/types/{id}/edit(id=${type.getId()})}" class="ui mini teal button">编辑</a>
            <a href="#" th:href="@{/admin/types/{id}/delete(id=${type.getId()})}" class="ui mini red button">删除</a>
        </td>
    </tr>
</tbody>
<tfoot>
    <tr>
        <th colspan="6">
            <a href="#" th:href="@{/admin/types/add}" class="ui basic teal button mini">新增</a>
            <div class="ui right mini floated pagination menu">
                <!--对pageNum进行传值-->
                <a href="#" th:href="@{/admin/types(pageNum=${page.getPageNum()}-1)}" class="icon item">
                    <i class="left chevron icon"></i>上一页
                </a>
                <a href="#" th:href="@{/admin/types(pageNum=${page.getPageNum()}+1)}" class="icon item">
                    <i class="right chevron icon"></i>下一页
                </a>
            </div>
        </th>
    </tr>
</tfoot>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值