怎么使用Mybatisplus的分页插件来完成分页

2024-08-31 08:12

本文主要是介绍怎么使用Mybatisplus的分页插件来完成分页,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前端使用的Elementui

后端

1.在配置里配置数据源

spring:datasource:url: jdbc:mysql://localhost:3306/vueadmin?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTCusername: rootpassword: Qq702196driver-class-name: com.mysql.cj.jdbc.Driver

2.写一个MybatisplusConfig的类,在里面添加一个分页拦截器

package com.lzy.config;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.lzy.common.lang.Result;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
@MapperScan("com.lzy.mapper")
public class MybatisPlusConfig {/*** 新的分页插件,一缓和二缓遵循mybatis的规则,* 需要设置 MybatisConfiguration#useDeprecatedExecutor = false* 避免缓存出现问题(该属性会在旧插件移除后一同移除)*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 分页插件interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));// 防止全表更新和删除interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());return interceptor;}}

3.写在我们所需要的service中

接口中写入

    Map rolePage(Integer currentPage, Integer pageSize);

在对应的类中重写

    @Overridepublic Map rolePage(Integer currentPage, Integer pageSize) {Page<SysUser> sysUserPage = userMapper.selectPage(new Page<>(currentPage, pageSize), null);//当前页数据List<SysUser> records = sysUserPage.getRecords();//总条数long total = sysUserPage.getTotal();Map map = new HashMap();map.put("total", total);map.put("records", records);return map;}

4.写在所需的Controller中

    @GetMapping("/sys/role/page")public Result rolePage(Integer currentPage,Integer pageSize) {Map map = sysUserService.rolePage(currentPage, pageSize);Long o = (Long) map.get("total");return o>0?Result.success(map):Result.fail(null);}

前端

1.导入Elementui的分页组件

    <el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="currentPage":page-sizes="[10, 20, 30, 40]":page-size="pageSize"layout="->,total, sizes, prev, pager, next, jumper":total="total"></el-pagination>

2.在data里写入对应的默认数据

      total: 0,pageSize: 10,currentPage: 1,

小技巧:

我们使用分页组件时,组件会默认出现在左方,不方便看,这是可以在

 layout="->,total, sizes, prev, pager, next, jumper"

中加上->,就可以直接在右边

3.写一个方法,来对接我们刚才写的接口,并将其引用在created

    getPage() {this.$axios.get("/sys/role/page",{params: {currentPage: this.currentPage,pageSize: this.pageSize,}}).then(res=>{if (res.data.code === 200) {this.tableData = res.data.data.records;this.total = res.data.data.total;}})},
  created() {// this.showRole()this.getPage();},

这是就会显示我们默认数据的条数

4.再写这两个方法

    handleSizeChange(val) {this.pageSize = val;this.getPage();},
    handleCurrentChange(val) {this.currentPage = val;this.getPage();},

完成

这篇关于怎么使用Mybatisplus的分页插件来完成分页的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123351

相关文章

C#中checked关键字的使用小结

《C#中checked关键字的使用小结》本文主要介绍了C#中checked关键字的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录✅ 为什么需要checked? 问题:整数溢出是“静默China编程”的(默认)checked的三种用

C#中预处理器指令的使用小结

《C#中预处理器指令的使用小结》本文主要介绍了C#中预处理器指令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 第 1 名:#if/#else/#elif/#endif✅用途:条件编译(绝对最常用!) 典型场景: 示例

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

VSCode开发中有哪些好用的插件和快捷键

《VSCode开发中有哪些好用的插件和快捷键》作为全球最受欢迎的编程工具,VSCode的快捷键体系是提升开发效率的核心密码,:本文主要介绍VSCode开发中有哪些好用的插件和快捷键的相关资料,文中... 目录前言1、vscode插件1.1 Live-server1.2 Auto Rename Tag1.3

Mysql中RelayLog中继日志的使用

《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req