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;
}
     // 排序方式,这里是以“recordNo”为标准进行降序
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); response.addHeader("x-frame-options","SAMEORIGIN"); // 允许iframe
return "record_list";
}
}

html页面

      <table id = "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>
          
     <!-- pageInfo.getContent() 返回的是一个list -->
<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>页
                 共<span th:text="${pageInfo.totalElements}"></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>

实现效果:

springboot+jpa分页(Pageable+Page)的更多相关文章

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

    这是已经被废弃的接口 Sort sort = new Sort(Sort.Direction.DESC,"bean类中字段"); //创建时间降序排序 Pageable pagea ...

  2. SpringBoot JPA + 分页 + 单元测试SpringBoot JPA条件查询

    application.properties 新增数据库链接必须的参数 spring.jpa.properties.hibernate.hbm2ddl.auto=update 表示会自动更新表结构,所 ...

  3. springBoot jpa 分页

    1.jap中有自带的分页方法 在dao层中使用 Page<LinkUrl> findAll(Pageable pageable); 2.在controller层 public List&l ...

  4. SpringBoot JPA实现增删改查、分页、排序、事务操作等功能

    今天给大家介绍一下SpringBoot中JPA的一些常用操作,例如:增删改查.分页.排序.事务操作等功能.下面先来介绍一下JPA中一些常用的查询操作: //And --- 等价于 SQL 中的 and ...

  5. SpringBoot JPA + H2增删改查示例

    下面的例子是基于SpringBoot JPA以及H2数据库来实现的,下面就开始搭建项目吧. 首先看下项目的整体结构: 具体操作步骤: 打开IDEA,创建一个新的Spring Initializr项目, ...

  6. SpringBoot JPA 专题

    Error: Error starting ApplicationContext. To display the auto-configuration report re-run your appli ...

  7. SpringBoot Jpa入门案例

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons) 我们先来了解一下是什么是springboot jpa,springboo ...

  8. 补习系列(19)-springboot JPA + PostGreSQL

    目录 SpringBoot 整合 PostGreSQL 一.PostGreSQL简介 二.关于 SpringDataJPA 三.整合 PostGreSQL A. 依赖包 B. 配置文件 C. 模型定义 ...

  9. spring data jpa 分页查询

    https://www.cnblogs.com/hdwang/p/7843405.html spring data jpa 分页查询   法一(本地sql查询,注意表名啥的都用数据库中的名称,适用于特 ...

随机推荐

  1. c++中的c_str()函数

    //c_str()是为了与C语言兼容,把c++中string类型的字符串返回首地址使用 #include <iostream>#include <string.h>using ...

  2. 报错OPTION SQL_SELECT_LIMIT=

    org.quartz.JobPersistenceException: Couldn't acquire next trigger: You have an error in your SQL syn ...

  3. 【JZOJ4803】【NOIP2016提高A组模拟9.28】求导

    题目描述 输入 输出 样例输入 2x^2+3x+1 样例输出 4x+3 数据范围 样例解释 求导的意思: 多项式是由若干个单项式构成的 单项式的一般形式是ax^b,其中ab都是常数,x是自变量 对于单 ...

  4. Android4.0以上源码中的DiskLruCache类简介

    /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Versi ...

  5. appium处理混合APP_获取上下文(切换句柄)

    //混合APP的处理 //getContextHandles():获取所有可用的上下文//context():设置上下文//getContext():获取当前上下文 //1. getContext() ...

  6. oracle水线的定义

    1.水线定义了表的数据在一个BLOCK中所达到的最高的位置. 2.当有新的记录插入,水线增高 3.当删除记录时,水线不回落 4.减少查询量

  7. JavaScript学习之setTimeout

    <JavaScript权威指南>第四版中说“window对象方法setTimeout()用来安排一个JavaScript的代码段在将来的某个指定时间运行”. setTimeout(foo, ...

  8. MVC设计之从零打造到实际操作(总汇)

    我们为什么要自己搭建一个MVC架构的框架? 1.为了更快的开发效率 2.为了更高的运行效率 3.为了更好的证明自己 在别的框架中,有些方法我们使用起来可能会比较麻烦,我们可以在自己的框架中写一些自己想 ...

  9. 初始化Redis密码

    在配置文件/etc/redis/redis.conf中有个参数: requirepass 这个就是配置redis访问密码的参数: 比如 requirepass test123: (需重启Redis才能 ...

  10. Android横竖屏切换和灭屏亮屏时Activity的生命周期探究(1)

    研究这个问题的初衷在于项目中碰到了一个问题:横屏的时候灭屏再亮屏,亮屏的时候用户能够清晰的看到先启动竖屏(过程1)再切换到横屏的过程,因为灭屏的时候onSaveInstanceState()保存的时横 ...