Day 30 Springboot基础8 JpaRepository简单分页

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指每页的期望行数
  • 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(
					 ""
					 +""+contentdata[i].id 
					 +""
					 +""+contentdata[i].title 
					 +""
					 +""+contentdata[i].open_date
					 +""
					 +""+contentdata[i].type
					 +""
					 +""
					 +""
					 +""
					 +""
					 +""
					 +""
			)
			
		}
			
			 
			 //设置动态分页
			 var totalPagesnumber=json.totalPages;
			 $(".pagination").empty();
			 $(".pagination").append('
  • 首页
  • '
    ); $(".pagination").append('
  • 上一页
  • '
    ); for(var j=0;j<totalPagesnumber;j++){ $(".pagination").append('
  • +j+'">'+(j+1)+'
  • '
    ); } $(".pagination").append('
  • 下一页
  • '
    ); //点击找到当前页面 $(".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

    你可能感兴趣的:(SpringBoot)