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

news/2024/7/24 12:26:50 标签: spring boot, mybatis, 后端

系列文章目录

文章目录

  • 系列文章目录
    • 系统版本
    • 实现功能
    • 操作步骤
      • 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 {
    @Bean
    public 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 {
    @Autowired
    private OrderMapper orderMapper;

    @Override
    public IPage getAllOrders(Page page) {
        return orderMapper.selectPage(page, null);
    }
    @Override
    public List<Orders> getAllList() {
        return orderMapper.selectList(null);
    }
}

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

4. 编写OrdersController 控制类

@RestController
public class OrderController {
    @Autowired
    private 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获取后端数据就是分好页的:
在这里插入图片描述

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


http://www.niftyadmin.cn/n/5168861.html

相关文章

计算机网络第一章(计算机网络开篇)

目录 一.什么是计算机网络1.0 何为计算机网络1.1 什么是Internet?1.2 互联网与互连网1.3 互联网基础结构发展的三个阶段 二.什么是网络协议2.1 协议的三要素2.2 internet协议标准 三. 互联网的组成3.1 边缘部分3.11 端系统之间的通信 3.2 核心部分3.21 数据交换技术 四. 计算机…

dRep-基因组质控、去冗余及物种界定

文章目录 Install依赖关系 常用命令常见问题pplacer线程超过30报错当比较基因组很多&#xff08;>4096&#xff09;有了Bdv.csv文件后无需输入基因组list 超多基因组为什么需要界定种&#xff1f;dRep重要概念次级ANI的选择Minimum alignment coverage3. 选择有代表性的基因…

ESP32 下蓝牙播放音乐

之前发过一贴&#xff1a; esp32 下蓝牙播放音乐歌词的获得_esp32 蓝牙音频-CSDN博客 说的是esp32 蓝牙接收音频流同步获得歌词的方案&#xff0c;但是有个很核心的内容由于硬件原因没有谈及&#xff0c;就是播放音乐。 这几天被抖音上各种水桶卡顿刺激了&#xff0c;经过一…

【2】Spring Boot 3 项目搭建

目录 【2】Spring Boot 3 初始项目搭建项目生成1. 使用IDEA商业版创建2. 使用官方start脚手架创建 配置与启动Git版本控制 个人主页: 【⭐️个人主页】 需要您的【&#x1f496; 点赞关注】支持 &#x1f4af; 【2】Spring Boot 3 初始项目搭建 项目生成 1. 使用IDEA商业版创…

户外台灯设计:照亮你的户外空间

在一个温暖的夏夜&#xff0c;能够在户外享受美味的晚餐是一种特殊的愉悦。这种露天用餐的体验不仅让你感受大自然的美丽&#xff0c;还提供了独特的放松感。为了让这个时刻更加难忘&#xff0c;户外台灯的用途与设计至关重要。 户外台灯能够创造出温馨的氛围&#xff0c;为用餐…

STM32-HAL库09-CAN通讯(loopback模式)

一、所用材料&#xff1a; STM32F103C6T6最小系统板 STM32CUBEMX&#xff08;HAL库软件&#xff09; MDK5 串口调试助手 二、所学内容&#xff1a; 初步学习如何使用STM32的CAN通讯功能&#xff0c;在本章节主要达到板内CAN通讯的效果&#xff0c;即32发送CAN信息再在CAN接收…

JVM-虚拟机的故障处理与调优案例分析

案例1&#xff1a;大内存硬件上的程序部署策略 一个15万PV/日左右的在线文档类型网站最近更换了硬件系统&#xff0c;服务器的硬件为四路志强处理器、16GB物理内存&#xff0c;操作系统为64位CentOS 5.4&#xff0c;Resin作为Web服务器。整个服务器暂时没有部署别的应用&#…

hook技术原理,举个详细的例子,然后给大家比喻一下就懂了

"Hook"技术&#xff0c;通常指的是一种在计算机编程中用于拦截、修改或扩展系统或应用程序行为的技术手段。它常用于软件开发中&#xff0c;通过在特定事件或函数调用的前后插入自定义代码&#xff0c;实现对系统或应用程序的控制和定制。这种技术在操作系统、图形用…