springboot+jpa分页插件(Pageable+Page)
Posted chuangqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot+jpa分页插件(Pageable+Page)相关的知识,希望对你有一定的参考价值。
Pageable+Page实现分页无需配置,也不需要加入jar包(maven依赖)
Controller控制层
package com.gxuwz.late.controller; import com.gxuwz.late.bean.Record; import com.gxuwz.late.repository.RecordRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletResponse; @Controller @RequestMapping("/manager") public class ManagerController static Logger logger = LoggerFactory.getLogger(ManagerController.class); @Autowired RecordRepository recordRepository; @RequestMapping("/list") public String list(HttpServletResponse response, Model model, Integer pageNum) if (pageNum == null) pageNum = 1; Sort sort = new Sort(Sort.Direction.DESC, "recordNo"); // 这里的"recordNO"是实体类的主键,记住一定要是实体类的字段,而不能是数据库的字段 Pageable pageable = new PageRequest(pageNum - 1, 6, sort); Page<Record> list = recordRepository.findAll(pageable); logger.info("pageNum==" + pageNum); model.addAttribute("pageInfo", list); logger.info("pageInfo=>" + list.getContent().get(0).getClassName()); response.addHeader("x-frame-options","SAMEORIGIN"); // 允许iframe return "record_list";
html页面
<table id = "dormitory_table" class="table table-hover text-center"> <tr> <th>晚归记录编号</th> <th>宿舍楼编号</th> <th>宿舍号</th> <th>学号</th> <th>班级</th> <th>辅导员</th> <th>晚归时间</th> <th>晚归原因</th> <th>操作</th> </tr> <tr th:each="record:$pageInfo.getContent()"> <td th:text="$record.recordNo "></td> <td th:text="$record.buildingNo "></td> <td th:text="$record.dorId "></td> <td th:text="$record.studentNo "></td> <td th:text="$record.className "></td> <td th:text="$record.instName "></td> <td th:text="$record.time "></td> <td th:text="$record.reason "></td> </tr> <tr> <td colspan="8"> <div class="pagelist"> <p>当前<span th:text="$pageInfo.getNumber() + 1"></span>页,总<span th:text="$pageInfo.totalPages"></span>页 <a th:href="@/manager/list">首页</a> <a th:href="@/manager/list(pageNum = $pageInfo.hasPrevious() ? $pageInfo.getNumber() : 1)">上一页</a> <a th:href="@/manager/list(pageNum = $pageInfo.hasNext() ? $pageInfo.getNumber() + 2 : $pageInfo.totalPages)">下一页</a> <a th:href="@/manager/list(pageNum = $pageInfo.totalPages)">尾页</a></p> </div> </td> </tr> </table>
实现效果:
jpa用pagehelper的话容易出现问题:如的pageSize无效,分页无效
以上是关于springboot+jpa分页插件(Pageable+Page)的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA sort排序方法使用方式, 添加关联表的 order by