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无效,分页无效

原文地址:https://www.cnblogs.com/chuangqi/p/11261482.html

时间: 2024-10-09 22:06:54

springboot+jpa分页插件(Pageable+Page)的相关文章

springboot +mybatis分页插件PageHelper

1.问题描述 JAVA界ORM的两位大佬Hibernate和Mybatis,hb自带分页(上手挺快,以前用了好几年hb,后期运维及优化快疯了),mybatis没有分页功能,需要借助第三方插件来完成,比较流行的三方框架:PageHelper,今天结合springboot做下介绍,直接贴线上配置,保证可用(如有遗漏,朋友们可以指正下). 2. 解决方案 2.1 配置项目pom.xml <!--分页--> <dependency> <groupId>com.github.pa

SpringBoot Jpa 分页查询最新配置方式

这是已经被废弃的接口 Sort sort = new Sort(Sort.Direction.DESC,"bean类中字段"); //创建时间降序排序 Pageable pageable = new PageRequest(pageNumber,pageSize,sort); 上面的用法在最新的SpringBoot中已经不再支持了,下面是一个简单的分页查询demo 持久层配置 public interface OrderDao extends JpaRepository<Orde

四步教你SpringBoot+Mybatis-plus分页插件(简单实现)

MyBatis-Plus 分页插件---四步走 第一步:编写分页插件配置类 //Spring boot方式 @EnableTransactionManagement @Configuration @MapperScan("com.itheima.mapper") public class MyBatisPlusConfig { /** * 分页插件 * @return */ @Bean public PaginationInterceptor paginationInterceptor

SpringBoot集成MyBatis的分页插件PageHelper

俗话说:好??不吃回头草,但是在这里我建议不管你是好马还是不好马,都来吃吃,带你复习一下分页插件PageHelper. 昨天给各位总结了本人学习springboot整合mybatis第一阶段的一些学习心得和源码,主要就算是敲了一下SpringBoot的门儿,希望能给各位的入门带给一点儿捷径,今天给各位温习一下MyBatis的分页插件PageHelper和SpringBoot的集成,它的使用也非常简单,开发更为高效.因为PageHelper插件是属于MyBatis框架的,所以相信很多哥们儿都已经用

SpringBoot集成MyBatis的分页插件PageHelper(回头草)

俗话说:好??不吃回头草,但是在这里我建议不管你是好马还是不好马,都来吃吃,带你复习一下分页插件PageHelper. 昨天给各位总结了本人学习springboot整合mybatis第一阶段的一些学习心得和源码,主要就算是敲了一下SpringBoot的门儿,希望能给各位的入门带给一点儿捷径,今天给各位温习一下MyBatis的分页插件PageHelper和SpringBoot的集成,它的使用也非常简单,开发更为高效.因为PageHelper插件是属于MyBatis框架的,所以相信很多哥们儿都已经用

springboot + mybatis配置分页插件

1:首先配置springboot +mybatis框架  参考:http://www.cnblogs.com/liyafei/p/7911549.html 2:创建配置类MybatisConfig,对分页插件进行配置.将mybatis-config.xml移动到classpath路径下. package com.liyafei.util.pagehelper; import java.util.Properties; import org.apache.ibatis.plugin.Interce

spring-boot | 整合通用Mabatis 分页插件PageHelper

Mybatis通用Mapper介绍 Mybatis 通用 Mapper极其方便的使用 Mybatis 单表的增删改查,支持单表操作,不支持通用的多表联合查询优点:通用 Mapper 可以极大的方便开发人员.为了让您更方便的了解通用 Mapper,下面贴一段代码来看实际效果.通用Mapper通用 Mapper 可以缓存,全部针对单表操作,每个实体类都需要继承通用 Mapper 接口来获得通用方法. 实际开发过程中,我们对数据库单表的操作情况有很多,有了通用mapper插件, 我们实现相对应的接口,

springboot分页插件的使用

在springboot工程下的pom.xml中添加依赖 <!--分页 pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency> &l

Jquery.Page.js 分页插件的使用

1.简单直接贴代码 需要引用以下样式和脚本 <link href="~/Scripts/Page/pager.css" rel="stylesheet" /> <script src="~/Scripts/jQuery-1.8.3.js"></script> <script src="~/Scripts/Page/jquery.pager.js"></script>