当前位置: 首页 > news >正文

【Springboot】基于注解式开发Springboot-Vue3整合Mybatis-plus实现分页查询

系列文章目录

文章目录

  • 系列文章目录
    • 系统版本
    • 实现功能
    • 操作步骤
      • 1. 新建Mybatis的全局分页配置文件
      • 2. 编写OrderMapper :继承Mybatis-plus提供的BaseMapper
      • 3. 编写OrderServiceImpl,实现OrderService
      • 4. 编写OrdersController 控制类
    • 发送接口请求测试

系统版本

后端: Springboot 2.7、 Mybatis-plus
数据库:MySQL 8.0
前端:Vue3、Axois 1.6.0 、Vite 4.5.0、Element-Plus、Router-v4

实现功能

本文主要从后端,借助Mybatis-plus提供的方法,实现分页功能。url中需要传入当前页,和每页显示多少条数据。下篇文章将结合Element-plus的el-pagination组件,调用后台数据,实现分页效果。

下面演示一个功能,比如分页查询订单(Orders)记录。读者可以根据自己的实体类,自行修改。
数据库数据如下:
在这里插入图片描述

操作步骤

1. 新建Mybatis的全局分页配置文件

Mybatis配置全局配置文件:MybatisPageConfig


/*** @author hspcadmin*/
@Configuration
@MapperScan("your mapper address")//设置mapper接口的扫描public class MyBatisPageConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();//添加分页插件interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}

2. 编写OrderMapper :继承Mybatis-plus提供的BaseMapper

public interface OrderMapper extends BaseMapper<Orders> {
}

在Service中编写具体业务方法,IPage <Orders> getAllOrders 是返回IPage类型,IPage类型已经将数据分页好了。

在OrderService中编写具体的业务。

public interface OrderService {/*** 获得所有的订单信息,使用IPage分页* @param page* @return*/IPage<Orders> getAllOrders(Page page);/*** 获取所有订单数据,不分页* @return*/List<Orders> getAllList();
}

3. 编写OrderServiceImpl,实现OrderService

package com.fy36.hotelmanage.service.impl;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fy36.hotelmanage.entity.Orders;
import com.fy36.hotelmanage.mapper.OrderMapper;
import com.fy36.hotelmanage.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;/*** @author hspcadmin*/
@Service
public class OrderServiceImpl implements OrderService {@Autowiredprivate OrderMapper orderMapper;@Overridepublic IPage getAllOrders(Page page) {return orderMapper.selectPage(page, null);}@Overridepublic List<Orders> getAllList() {return orderMapper.selectList(null);}
}

上面实际使用Mybatis-plus方法的是getAllOrders方法,实际调用的是Mybatis-plus源码里面的下面的这个方法:
在这里插入图片描述

4. 编写OrdersController 控制类

@RestController
public class OrderController {@Autowiredprivate OrderServiceImpl orderService;/*** 不带分页查询** @return 返回List数组*/@GetMapping("/get-all")public ApiResult getAllOrderList() {System.out.println("get-all.....");return ApiResultHandler.buildApiResult(200, "获取信息", orderService.getAllList());}/*** 带分页的查询** @param page,代表当前的页数* @param size,代表当前每页显示多少内容* @return 返回IPage类型*/@GetMapping("/get-page/{page}/{size}")public IPage<Orders> queryUserForPage(@PathVariable("page") Integer page, @PathVariable("size") Integer size) {Page<Orders> ordersPage = new Page<>(page, size);IPage<Orders> logsIPage = orderService.getAllOrders(ordersPage);return logsIPage;}
}

发送接口请求测试

数据库中数据一共有7条。
在这里插入图片描述
localhost:8081/get-page/1/4 ,即查询第1页,并规定每页4条数据。
在这里插入图片描述

localhost:8081/get-page/2/4 ,即查询第2页,并规定每页4条数据。
在这里插入图片描述

再比如更改每页的页面大小为3,发送请求:localhost:8081/get-page/1/3
在这里插入图片描述
前端axois获取后端数据就是分好页的:
在这里插入图片描述

前端效果如下:
在这里插入图片描述

相关文章:

  • 每次重启完IDEA,application.properties文件里的中文变成?
  • Flink 基础 -- 应用开发(Table API SQL) 概念和通用API
  • Linux驱动开发——USB设备驱动
  • 从windows iso文件中提取install.wim
  • 从零开始搭建微服务(二)
  • 【星海出品】flask(三) 组件
  • 单词规律问题
  • 链表经典面试题之二
  • 内向基环树
  • 基于DS1302时钟液晶12864显示2路闹钟仿真及源程序
  • 【操作系统】考研真题攻克与重点知识点剖析 - 第 2 篇:进程与线程
  • 迅为龙芯3A5000主板,支持PCIE 3.0、USB 3.0和 SATA 3.0显示接口2 路、HDMI 和1路 VGA,可直连显示器
  • Surface RT 安装 Linux
  • 111111111111111
  • [蓝桥杯复盘] 第 3 场双周赛20231111
  • js递归,无限分级树形折叠菜单
  • js如何打印object对象
  • JWT究竟是什么呢?
  • Mysql优化
  • python3 使用 asyncio 代替线程
  • Spark学习笔记之相关记录
  • Spring核心 Bean的高级装配
  • Vue.js 移动端适配之 vw 解决方案
  • vue--为什么data属性必须是一个函数
  • windows下mongoDB的环境配置
  • 初识 beanstalkd
  • 分布式任务队列Celery
  • 高性能JavaScript阅读简记(三)
  • 基于组件的设计工作流与界面抽象
  • 前端之Sass/Scss实战笔记
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 译米田引理
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #NOIP 2014#Day.2 T3 解方程
  • #pragma data_seg 共享数据区(转)
  • #QT(串口助手-界面)
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (2015)JS ES6 必知的十个 特性
  • (a /b)*c的值
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (ros//EnvironmentVariables)ros环境变量
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (三)Honghu Cloud云架构一定时调度平台
  • (四) 虚拟摄像头vivi体验
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)ObjectiveC 深浅拷贝学习
  • ./和../以及/和~之间的区别
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .net6 webapi log4net完整配置使用流程