好家伙,
这里我们必须考虑:当数据库表单数据过多时,我们必须增加分页展示
想想上百条数据一页展示完,那么可能找不到我要的那条数据了
我们前后端分开处理:本篇介绍完成后端部分--分页查询接口的编写
由于我对spring boot的知识储备并不丰富,
所以,本篇,我只能做到“会用”,做不到“详细解释”,但这依旧是一篇实用的博客
1.数据库目录
数据库表单:
2.Spring boot项目目录
后端目录结构:
(我连接数据库用的是Spring JDBC,当然了,你也可以跟我一样,把JDBC选上)
提一点:新建项目选服务时候记得选上SQL的 Spring JPA,这个写分页查询接口的时候会用到
记得按自己的数据库配置配置项
BookHandler类:
package com.example.demo2.controller; import com.example.demo2.entity.Book; import com.example.demo2.repository.BookRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/book") public class BookHandler { @Autowired private BookRepository bookRepository; @GetMapping("/findAll/{page}/{size}") public Page<Book> findAll(@PathVariable("page") Integer page, @PathVariable("size") Integer size){ PageRequest request = PageRequest.of(page-1,size); return bookRepository.findAll(request); } @PostMapping("/save") public String save(@RequestBody Book book){ Book result = bookRepository.save(book); if(result != null){ return "success"; }else{ return "error"; } } @GetMapping("/findById/{id}") public Book findById(@PathVariable("id") Integer id){ return bookRepository.findById(id).get(); } @PutMapping("/update") public String update(@RequestBody Book book){ Book result = bookRepository.save(book); if(result != null){ return "success"; }else{ return "error"; } } @DeleteMapping("/deleteById/{id}") public void deleteById(@PathVariable("id") Integer id){ bookRepository.deleteById(id); } }
插一嘴:
PageRequest request = PageRequest.of(page-1,size);
此处的page要减一,我们现实逻辑是从第一页开始的
但表单的逻辑是从第0页开始的
Book类:
package com.example.demo2.entity; import lombok.Data; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity @Data public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; private String author; }
接口BookRepository:
package com.example.demo2.repository; import org.springframework.data.jpa.repository.JpaRepository; import com.example.demo2.entity.Book; public interface BookRepository extends JpaRepository<Book,Integer> { }
查看一下我们的端口:localhost:8011/book/findAll/1/6
(没毛病)
标签:测试项目,page,接口,public,Book,import,com,id,分页 From: https://www.cnblogs.com/FatTiger4399/p/16815014.html