首页 > 其他分享 >测试项目(五):数据分页查询(后端接口)

测试项目(五):数据分页查询(后端接口)

时间:2022-10-21 22:55:26浏览次数:55  
标签:测试项目 page 接口 public Book import com id 分页

好家伙,

 

这里我们必须考虑:当数据库表单数据过多时,我们必须增加分页展示

想想上百条数据一页展示完,那么可能找不到我要的那条数据了

 

我们前后端分开处理:本篇介绍完成后端部分--分页查询接口的编写 

 

由于我对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

相关文章

  • robotframework自动化测试框架实战教程:创建及使用监听器(listener)接口
    RobotFramework提供了一个监听器(listener)接口可以用来接收测试执行过程中的通知. 监听器通过在命令行中设置选项 --listener 来启用,和导入测试库类似,你也可以指定......
  • drf接口文档
    接口文档接口编写已经写完了,需要编写接口文档,给前端的人使用-请求地址-请求方式-支持的编码格式-请求参数(get,post参数)-返回格式示例在公司的写法1)直接使用word......
  • 网络工程知识(二)VLAN的基础和配置:802.1q帧;Access、Trunk、Hybrid接口工作模式过程与配
    介绍-VLANVLAN(VirtualLocalAreaNetwork)即虚拟局域网,工作在数据链路层。交换机将通过:接口、MAC、基于子网、协议划分(IPv4和IPv6)、基于策略的方式划分VLAN的方式,将接......
  • 前端js的数据纯前端分页通用方法封装
    用elementui分页组件的话可以直接用这个函数将拿到的总的数据缓存起来,然后分别在切换页数,翻页的时候调用这个方法既可/***前端分页,不再次请求接口,不破坏原数组list......
  • nginx 配置一个网站多个接口
    vue一个前端但是后端接口多个,在nginx中配置:server{listen10001;server_nameshare_pingtai;location/{root......
  • 2022年十大接口测试工具合集《建议.收藏》
    接口测试的全称是应用程序编程接口(API)测试,从原理上来说,接口测试是模拟客户端向服务器端发送请求,然后检查能否获得正确的返回信息。接口测试用于测试RESTfulAPI、SOAPWeb服......
  • Linux 文件操作接口
    目录Linux文件操作接口C语言文件操作接口C语言文件描述fopen()r模式打开文件w模式打开文件a模式打开文件其他模式类似fclose()fwrite()fread()系统文件操作接口文件描述符......
  • 接口
    什么是接口接口的作用1.约束2.定义一些方法,让不同的人实现3.接口中默认的方法:publicabstract4.接口中默认的长乐:publicstaticfinal5.接口不能被实例化,接口中......
  • 接口文档所需内容
    文档的存储说明:可以使用第三方的管理文档工具,也可以根据当前自己公司的所需所采用的方式都可以,管理工具:eolinker网站链接:​​https://www.eolinker.com/#/invite/?invit......
  • Airtest---UI自动化测试项目
    ​​AirtestProject​​是网易游戏团队新开源出来的一款用于UI自动化测试的项目。testerhome中的文档介绍:​​https://testerhome.com/topics/12486​​官方链接:​​http:/......