基于 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"
}

结果正确。

【测试开花】三、项目管理-后端-实现列表接口(含分页、模糊查询)相关推荐

  1. Python如何优化列表接口进行分页

    最近,在做测试开发平台的时候,需要对测试用例的列表进行后端分页,在实际去写代码和测试的过程中,发现这里面还是有些细节的,故想复盘一下 分页的目的 做个假设,加入用例库有 1W 条数据,如果想要以列表形 ...

  2. 如何优雅的对列表接口进行分页?

    最近,在做测试开发平台的时候,需要对测试用例的列表进行后端分页,在实际去写代码和测试的过程中,发现这里面还是有些细节的,故想复盘一下,所以有了这篇文章. 分页的目的 做个假设,加入用例库有 1W 条数 ...

  3. php bootstrap 分页 查询,深入了解Bootstrap table表格插件(二)前后端分页模糊查询...

    这篇文章主要为大家分享了Bootstrap table学习笔记,前后端分页模糊查询,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在使用过程中,一边看文档一边做,遇到了一些困难的地方,在此记录一下 ...

  4. Bootstrap-table学习笔记(二)——前后端分页模糊查询

    在使用过程中,一边看文档一边做,遇到了一些困难的地方,在此记录一下,顺便做个总结: 1,前端分页 2,后端分页 3,模糊查询 前端分页相当简单,在我添加了2w条测试数据的时候打开的很流畅,没有卡顿. ...

  5. 实现城市列表的排序及模糊查询

    作者 | wustor 地址 | https://www.jianshu.com/p/0ea45116f475 声明 | 本文是 wustor 原创,已获授权发布,未经原作者允许请勿转载 概述 项目需 ...

  6. Javaweb15==mysql+mybatis+servlet+axios+fasetjson+vue+elementUI前后端分离,实现列表后端分页、模糊查询后分页、新增、单一/批量删除、修改

    难点:模糊查询后再次分页,并可以选择页数. 最终环境配置: maven3.8:依赖包管理 IDEA2021+JDK8+mysql connector java5+Mysql5+mybatis3.5:从 ...

  7. vue实现input输入模糊查询(三种方式)

    vue实现input输入模糊查询(三种方式) 目录 vue实现input输入模糊查询(三种方式) 1 计算属性实现模糊查询 演示: 2 watch 监听实现模糊查询 3 通过按钮点击实现模糊查询 演示 ...

  8. php 动态彩码辨色 接口的调用_好用的云函数!后端低代码接口开发,零基础编写API接口...

    前言 在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作. 不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人, ...

  9. 好用的云函数!后端低代码接口开发,零基础编写API接口

    前言 在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作. 不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人, ...

最新文章

  1. django手机访问_Django从入门到大作业:2-见网页
  2. 好工作为什么会与你擦肩而过?
  3. c语言删除一行程序代码,删除C语言程序中所有的注释语句的实现代码
  4. [HEOI2013] SAO(dp + 组合数 + 前缀和)
  5. kie-api_7.0上的新KIE持久性API
  6. P1401 城市(30分,正解网络流)
  7. css中的em 简单教程 -- 转
  8. CDH、CM下载403,Cloudera收费无法下载解决,CDH安装包下载
  9. LeetCode 链表的插入排序
  10. 将button变成圆形(有弧度)
  11. java 定时器 quartz_Java定时器和Quartz使用
  12. MySQL 案例实战--MySQL数据库主从复制
  13. [oeasy]python0020换行字符_feed_line_lf_反斜杠n_B语言_安徒生童话
  14. 单片机外部RAM如何用C 语言访问,C51中访问外部RAM的方法
  15. 漏洞取证_使用Linux文件系统取证进行漏洞检测
  16. win7 关机速度比较快
  17. Linux 集群技术
  18. 目标管理之SMART原则
  19. if_else与三目运算符的效率问题
  20. 【Vivado那些事儿】在不重新安装 Vivado 的情况下,是否能够安装 Xilinx USB/Digilent 线缆驱动器?...

热门文章

  1. 西门子opc ua_西门子系列常见问题答疑汇总
  2. 利用js,实现网页上实时更新时间,需要时直接拿来用,不需要改动
  3. 大型电商网站架构分析
  4. 草图大师自带模型库在哪里_大师在20分钟或更短的时间内创建您的第一个神经网络模型...
  5. 深度学习中,人们常说的鲁棒性和泛化性是什么意思?通俗的给你解释清楚,一看你就明白了。
  6. Springboot银行客户管理系统 毕业设计-附源码250903
  7. Python进行克里金插值可视化
  8. php excel转html,如何将Excel文件转换为Html的详解(图)
  9. 【Ubuntu 22.04】华硕主板 H110I-PLUS 网络唤醒(WOL)设置
  10. Ubuntu中安装Pytorch