Repository
继承 jparepository 接口
package com.ll.zhomework.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.ll.zhomework.entity.Homeworkmaster2;
public interface Homeworkmaster2_Repository extends JpaRepository<Homeworkmaster2,String>{
}
Service
//分页
public Page<Homeworkmaster2> findAll(String page,String limit){
Pageable pageable=PageRequest.of(Integer.parseInt(page), Integer.parseInt(limit));
Page<Homeworkmaster2> pageinfo=homeworkmaster2_Repository.findAll(pageable);
return pageinfo;
}
JpaRepository提供了两个和分页和排序有关的查询
-
List findAll(Sort sort) 返回所有实体,按照指定顺序排序返回 -------( Sort对象用来指示排序 )
-
List findAll(Pageable pageable) 返回实体列表,实体的offest和limit通过pageable来指定------( Pageable接口用于构造翻页查询 )
- Pageable定义了很多方法,但其核心的信息只有两个:
- 一是分页的信息(page、size)
- 二是排序的信息。Spring Data Jpa提供了PageRequest的具体实现
- PageRequest是其实现类,可以通过提供的工厂方法创建PageRequest:
-------public static PageRequest of(int page, int size)
-------public static PageRequest of(int page, int size, Sort sort) ( PageRequest中加入排序 )- 方法中的参数,page总是从0开始,表示查询页,size指每页的期望行数。
- Pageable定义了很多方法,但其核心的信息只有两个:
-
Page接口 可以获得当前页面的记录、总页数、总记录数、是否有上一页或下一页等。Spring Data翻页查询总是返回Page对象,Page对象提供了以下常用的方法:
- int getTotalPages() 总的页数
- long getTotalElements() 返回总数
- List getContent() 返回此次查询的结果集
参考链接:使用Spring JPA中Page、Pageable接口和Sort类完成分页排序https://blog.csdn.net/qq_40715775/article/details/83153808
参考链接:JPA中的Page与Pageable https://blog.csdn.net/u011781521/article/details/74539330
Controller
//分页
@RequestMapping("page")
public Page<Homeworkmaster2> pagetest(HttpServletRequest request){
String startpage=request.getParameter("start");
System.out.println("startpage==="+startpage);
return homeworkmaster2_Service.findAll(startpage, "5"); //第0页 一页5行
}
js
$(document).ready(function(){
var currentpage=0;
getData();
//显示全部
function getData(){
$.getJSON("/b/homeworkmaster2_/page",{
start:currentpage},function(json){
console.log(json);
console.log("*******1***"+currentpage);
var contentdata=json.content;
$("#tbodyprobtn").empty();
for(var i=0;i<contentdata.length;i++){
$("#tbodyprobtn").append(
"<tr>"
+"<td>"+contentdata[i].id
+"</td>"
+"<td>"+contentdata[i].title
+"</td>"
+"<td>"+contentdata[i].open_date
+"</td>"
+"<td>"+contentdata[i].type
+"</td>"
+"<td>"
+"<button type='button' class='btn btn-outline-info btn-sm' data-toggle='modal' data-target='#myModal1'id='btn1"+contentdata[i].id+"' name='btn001' >提交情况</button>"
+"</td>"
+"<td>"
+"<button type='button' class='btn btn-outline-danger btn-sm' data-toggle='modal' data-target='#myModal2' id='btn3"+contentdata[i].id+"' name='btn003' >作业内容</button>"
+"</td></tr>"
)
}
//设置动态分页
var totalPagesnumber=json.totalPages;
$(".pagination").empty();
$(".pagination").append('<li class=""><a class="page-link" href="#" id="firstpage">首页</a></li>');
$(".pagination").append('<li class=""><a class="page-link" href="#" id="updata">上一页</a></li>');
for(var j=0;j<totalPagesnumber;j++){
$(".pagination").append('<li class="page-item" id="pageno'+j+'"><a class="page-link" href="#">'+(j+1)+'</a></li>');
}
$(".pagination").append('<li class=""><a class="page-link" href="#" id="nextdate">下一页</a></li>');
//点击找到当前页面
$(".page-item").click(function(){
var idno=this.id;
currentpage=idno.substr(6);
getData();
});
$(".page-item").removeClass("active");
$("#pageno"+currentpage).addClass("active");
//点击上一页
$("#updata").click(function(event){
if(json.first==true){
event.preventDefault();
}else{
var intnum=new Number(currentpage)
currentpage=intnum-1;
getData();
}
});
//点击下一页
$("#nextdate").click(function(event){
if(json.last==true){
event.preventDefault();
}else{
var intnum=new Number(currentpage)
currentpage=intnum+1;
getData();
}
});
//点击首页
$("#firstpage").click(function(){
currentpage=0;
getData();
});
});
}
//
{
"content":[
{
"id":"1565316616556151514",
,"username":"123",
,"password":"123",
,"type":"学生",
,"imgname":"timg (2).jpg"},
{
"id":"1565320759385517327",
,"username":"789",
,"password":"789",
,"type":"学生",
,"imgname":"timg (2).jpg"},
{
"id":"1565320851229506472",
,"username":"777",
,"password":"778",
,"type":"老师",
,"imgname":"timg (2).jpg"},
{
"id":"1565490920634432800",
,"username":"芳芳老师",
,"password":"7788",
,"type":"老师",
,"imgname":"timg (2).jpg"},
{
"id":"1565777740264243683",
,"username":"456",
,"password":"456",
,"type":"学生",
,"imgname":"timg (2).jpg"}],//content 一个数组---数据库里面的记录
,"pageable":{
"sort":{
"unsorted":true,//sort 是否排序
,"sorted":false,
,"empty":true},
,"offset":0,
,"pageSize":5,//一行显示5条记录
,"pageNumber":0,
,"unpaged":false,
,"paged":true},
,"totalPages":1,//一共只有一页
,"totalElements":5,//一共有五条记录
,"last":true,
,"number":0,
,"size":5,
,"sort":{
"unsorted":true,
,"sorted":false,
,"empty":true},
,"numberOfElements":5,
,"first":true,
,"empty":false}
返回结果参考文章:https://www.tianmaying.com/tutorial/spring-jpa-page-sort