【测试开花】三、项目管理-后端-实现列表接口(含分页、模糊查询)
基于 springboot+vue 的测试平台开发继续更新。
打开项目管理,就需要看到列表里展示项目数据,比如这样(截图是这个前端框架的demo,仅作示意):
那么对应到我们平台的项目管理功能,就需要有:
- 列表展示添加的项目数据
- 可以通过项目名称查询指定的项目
- 新增项目
- 编辑项目
- 其他功能...
新增项目的接口已经实现,接下来实现项目列表接口。
这个列表接口,我需要它可以同时满足分页以及条件查询,路径大概为/list/{currentPage}/{pageSize}
。
其中 currentPage 表示当前是第几页,pageSize 表示每页大小。
比如/list/1/5}
,就说明我要查第 1 页,每页展示 5 条数据。
一、分页插件
mybatis-plus 提供了一些很实用的插件,其中就包括分页插件。
新建一个配置类 MybatisPlusConfig 用于存放 mybatis-plus 相关插件配置,并且注册分页插件:
package com.pingguo.bloomtest.config;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MybatisPlusConfig {// 分页插件@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}
}
二、实现接口
实现的套路还是之前的那样,说到这,其实 mybatis-plus 还提供了代码生成器 AutoGenerator。
通过它可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,提升开发效率。
但是这里我并不要使用,因为本来就是学习的过程,多写写加深印象。另外本工程量实在也不大,就没必要用了。
1. 编写 Service 层
在之前的 ProjectService 下,新增查询方法 getProjectList 。
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;public IPage<Project> getProjectList(int currentPage, int pageSize, Project project) {// 创建分页对象,current为当前页数,size为每页最大记录数Page<Project> pageProject = new Page<>(currentPage, pageSize);QueryWrapper<Project> wrapperProject = new QueryWrapper<>();// 第一个参数为是否执行条件,为true则执行该条件wrapperProject.like(StringUtils.isNoneBlank(project.getProjectName()), "projectName", project.getProjectName());// 调用分页查询方法,传入分页对象-pageProject,wrapperProject是构造条件对象return projectDAO.selectPage(pageProject, wrapperProject);}
- 创建分页对象 Page,它有 2 个参数,其中 current 为当前页数,size 则为每页最大记录数。
- 因为 getProjectList 方法也要实现条件查询,所以创建条件查询对象。
- wrapperProject.like 使用模糊查询,like 方法可以有 3 个参数,第一个参数为是否执行条件,当 projectName 为空就不执行。
- 最后调用 selectPage 方法,传入分页对象-pageProject 和 构造条件对象 wrapperProject。
返回的对象类型是 IPage,包名也贴出来了。
2. 编写 Controller 层
在之前的 ProjectController 类下新增控制方法 getProjectList 来处理请求:
@PostMapping("/list/{currentPage}/{pageSize}")public Result getProjectList(@PathVariable int currentPage,@PathVariable int pageSize,@RequestBody Project project) {IPage<Project> IPageProject = projectService.getProjectList(currentPage, pageSize, project);return Result.success(IPageProject);}
@PathVariable
注解用来获取路径上的参数,@RequestBody
用来获取请求体。
最后把返回结果 IPageProject 放到统一结果里返回return Result.success(IPageProject)
。
三、测试接口
自测一下查询接口。目前 Project 表里有 14 条数据。
1. 测试分页
localhost:8080/bloomtest/project/list/2/5
,14条数据按理会分为 3 页,第二页从 id=6 的数据开始,每页展示 5 条。
继续往下,到 id=10 截止,共 5 条,结果正确。
另外,还可以看到返回内容里还有几个字段,都是分页相关:
"total": 14
表示共 14 条记录。"size": 5
表示每页最大 5 条记录。"current": 2
表示当前是第 2 页。"pages": 3
表示共 3 页。
这些字段在前端使用分页控件的时候需要用到。
2. 测试条件查询
传入查询参数:
{"projectName": "测试项目5"
}
测试模糊查询:
{"projectName": "6"
}
结果正确。
【测试开花】三、项目管理-后端-实现列表接口(含分页、模糊查询)相关推荐
- Python如何优化列表接口进行分页
最近,在做测试开发平台的时候,需要对测试用例的列表进行后端分页,在实际去写代码和测试的过程中,发现这里面还是有些细节的,故想复盘一下 分页的目的 做个假设,加入用例库有 1W 条数据,如果想要以列表形 ...
- 如何优雅的对列表接口进行分页?
最近,在做测试开发平台的时候,需要对测试用例的列表进行后端分页,在实际去写代码和测试的过程中,发现这里面还是有些细节的,故想复盘一下,所以有了这篇文章. 分页的目的 做个假设,加入用例库有 1W 条数 ...
- php bootstrap 分页 查询,深入了解Bootstrap table表格插件(二)前后端分页模糊查询...
这篇文章主要为大家分享了Bootstrap table学习笔记,前后端分页模糊查询,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在使用过程中,一边看文档一边做,遇到了一些困难的地方,在此记录一下 ...
- Bootstrap-table学习笔记(二)——前后端分页模糊查询
在使用过程中,一边看文档一边做,遇到了一些困难的地方,在此记录一下,顺便做个总结: 1,前端分页 2,后端分页 3,模糊查询 前端分页相当简单,在我添加了2w条测试数据的时候打开的很流畅,没有卡顿. ...
- 实现城市列表的排序及模糊查询
作者 | wustor 地址 | https://www.jianshu.com/p/0ea45116f475 声明 | 本文是 wustor 原创,已获授权发布,未经原作者允许请勿转载 概述 项目需 ...
- Javaweb15==mysql+mybatis+servlet+axios+fasetjson+vue+elementUI前后端分离,实现列表后端分页、模糊查询后分页、新增、单一/批量删除、修改
难点:模糊查询后再次分页,并可以选择页数. 最终环境配置: maven3.8:依赖包管理 IDEA2021+JDK8+mysql connector java5+Mysql5+mybatis3.5:从 ...
- vue实现input输入模糊查询(三种方式)
vue实现input输入模糊查询(三种方式) 目录 vue实现input输入模糊查询(三种方式) 1 计算属性实现模糊查询 演示: 2 watch 监听实现模糊查询 3 通过按钮点击实现模糊查询 演示 ...
- php 动态彩码辨色 接口的调用_好用的云函数!后端低代码接口开发,零基础编写API接口...
前言 在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作. 不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人, ...
- 好用的云函数!后端低代码接口开发,零基础编写API接口
前言 在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作. 不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人, ...
最新文章
- django手机访问_Django从入门到大作业:2-见网页
- 好工作为什么会与你擦肩而过?
- c语言删除一行程序代码,删除C语言程序中所有的注释语句的实现代码
- [HEOI2013] SAO(dp + 组合数 + 前缀和)
- kie-api_7.0上的新KIE持久性API
- P1401 城市(30分,正解网络流)
- css中的em 简单教程 -- 转
- CDH、CM下载403,Cloudera收费无法下载解决,CDH安装包下载
- LeetCode 链表的插入排序
- 将button变成圆形(有弧度)
- java 定时器 quartz_Java定时器和Quartz使用
- MySQL 案例实战--MySQL数据库主从复制
- [oeasy]python0020换行字符_feed_line_lf_反斜杠n_B语言_安徒生童话
- 单片机外部RAM如何用C 语言访问,C51中访问外部RAM的方法
- 漏洞取证_使用Linux文件系统取证进行漏洞检测
- win7 关机速度比较快
- Linux 集群技术
- 目标管理之SMART原则
- if_else与三目运算符的效率问题
- 【Vivado那些事儿】在不重新安装 Vivado 的情况下,是否能够安装 Xilinx USB/Digilent 线缆驱动器?...
热门文章
- 西门子opc ua_西门子系列常见问题答疑汇总
- 利用js,实现网页上实时更新时间,需要时直接拿来用,不需要改动
- 大型电商网站架构分析
- 草图大师自带模型库在哪里_大师在20分钟或更短的时间内创建您的第一个神经网络模型...
- 深度学习中,人们常说的鲁棒性和泛化性是什么意思?通俗的给你解释清楚,一看你就明白了。
- Springboot银行客户管理系统 毕业设计-附源码250903
- Python进行克里金插值可视化
- php excel转html,如何将Excel文件转换为Html的详解(图)
- 【Ubuntu 22.04】华硕主板 H110I-PLUS 网络唤醒(WOL)设置
- Ubuntu中安装Pytorch