前后端分离项目(五):数据分页查询(后端接口)
2023-03-20 15:35:19 时间
好家伙,
这里我们必须考虑:当数据库表单数据过多时,我们必须增加分页展示
想想上百条数据一页展示完,那么可能找不到我要的那条数据了
我们前后端分开处理:本篇介绍完成后端部分--分页查询接口的编写
由于我对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
(没毛病)
相关文章
- GBDT:梯度提升决策树
- 大数据分析本身的工业化
- 以什么姿势进入DataMining会少走弯路?
- 集成学习方法
- 推荐系统常用的推荐算法
- 数据结构常见的八大排序算法
- R语言的三种聚类方法
- 都在做大数据,你上市了么?
- 大数据下的技术运营:数据采集系统设计与实现
- 大数据时代下的意图搜索 个性化服务是关键
- 岱凯:领先的ICT解决方案和服务,助力企业赢在数字时代
- 大数据时代保护个人隐私的5点建议
- 大数据如何影响商业决策
- 国双成中国首家赴美上市大数据企业,十一年创业的重要里程碑
- 8月份改变行业游戏规则的十款物联网新品
- Spark加速大数据在企业落地
- 数据科学家最常用的10种算法
- “后大数据时代”,看TalkingData如何定义
- 人工智能创新有望解决大数据难题
- 大数据”时代并不是掌握数据,而是利用数据