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(
					 "<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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot JPA是Spring Boot框架中的一个模块,它提供了对基于JPA的数据访问层的增强支持。通过使用Spring Data JPA依赖,我们可以轻松地实现基于JPA的存储库。在pom.xml文件中,我们需要添加Spring Data JPA和MySQL数据库的依赖。\[1\] Spring Data JPA使得构建使用数据访问技术的Spring驱动的应用程序更加容易。\[2\] 在测试中,我们可以使用Spring Boot的测试框架来测试JPA的功能。在示例代码中,我们可以看到一个测试类DemoJpaApplicationTests,它使用了@RunWith(SpringRunner.class)和@SpringBootTest注解来配置测试环境。在测试方法testAdd中,我们可以看到如何使用JPA进行数据的新增操作。\[3\] 总结来说,SpringBoot JPA是Spring Boot框架中的一个模块,它提供了对基于JPA的数据访问层的增强支持。通过添加相应的依赖和配置,我们可以轻松地使用JPA进行数据的操作和管理。 #### 引用[.reference_title] - *1* [springboot整合jpa,步骤详细(图文结合讲解)](https://blog.csdn.net/weixin_43442127/article/details/119953836)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SpringBoot环境下JPA的使用](https://blog.csdn.net/m0_49261516/article/details/127212417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [什么是JPASpringBoot 中使用JPA](https://blog.csdn.net/someday____/article/details/126227331)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值