SpringBoot + MyBatisPlus分页查询

文章目录

    • 1.思路分析
    • 2.分页查询后端实现
        • 1.com/sun/furn/config/MybatisConfig.java 注入MyBatisPlus分页拦截器
        • 2.com/sun/furn/controller/FurnController.java 添加方法
        • 3.postman测试
    • 3.分页查询前端实现
        • 1.src/views/HomeView.vue 引入分页导航条组件
        • 2.src/views/HomeView.vue 初始化数据池
        • 3.查看效果
        • 4.src/views/HomeView.vue 方法池新增三个方法
        • 5.前端分页查询小结
            • Vue总结为一句话:**方法池三端获取数据,保证Model对View的实时渲染!**
        • 6.结果展示
    • 4.切换数据源为druid
        • 1.pom.xml 引入druid依赖
        • 2.com/sun/furn/config/DruidDataSourceConfig.java 配置文件注入druid数据源
        • 3.启动测试
    • 5.带条件查询分页显示后端实现
        • 1.com/sun/furn/controller/FurnController.java 添加方法
        • 2.postman测试
    • 6.带条件查询分页显示前端实现
        • 1.src/views/HomeView.vue 基本准备
          • 1.前端界面
          • 2.数据池
        • 2.src/views/HomeView.vue 直接修改方法区的list方法
        • 3.结果展示

1.思路分析

image-20240319140604182

2.分页查询后端实现

1.com/sun/furn/config/MybatisConfig.java 注入MyBatisPlus分页拦截器
package com.sun.furn.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Description: MyBatis分页查询配置类
 *
 * @Author sun
 * @Create 2024/3/19 14:13
 * @Version 1.0
 */
@Configuration
public class MybatisConfig {

    /**
     * 注入一个MyBatisPlus拦截器,在其中添加一个内部拦截器
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //这里分页需要指定数据库类型DbType
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return mybatisPlusInterceptor;
    }
}
2.com/sun/furn/controller/FurnController.java 添加方法
    /**
     *
     * @param pageNum 第几页 默认1
     * @param pageSize 页的大小 默认5
     * @return
     */
    @GetMapping("/furnsByPage")
    public Result listFurnsByPage(@RequestParam(defaultValue = "1") Integer pageNum,
                                  @RequestParam(defaultValue = "5") Integer pageSize) {
        //通过page方法,返回分页信息
        Page<Furn> page = furnService.page(new Page<>(pageNum, pageSize));
        return Result.success(page);
    }
3.postman测试

image-20240319143404796

3.分页查询前端实现

1.src/views/HomeView.vue 引入分页导航条组件
    <!--    引入分页导航条组件-->
    <div style="margin: 10px 0">
      <el-pagination
          @size-change="handlePageSizeChange" @current-change="handleCurrentChange"
          :current-page="currentPage"
          :page-sizes="[5,10]"
          :page-size="pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="total">
      </el-pagination>
    </div>
2.src/views/HomeView.vue 初始化数据池

image-20240319144709473

3.查看效果

image-20240319144729078

4.src/views/HomeView.vue 方法池新增三个方法
    // 分页显示家居信息
    list() {
      request.get("/api/furnsByPage", {
        params: {
          // 请求参数
          pageNum: this.currentPage,
          pageSize: this.pageSize
        }
      }).then(
          res => {
            this.tableData = res.data.records
            this.total = res.data.total
          }
      )
    },
    //监控pagesize的改变
    handlePageSizeChange(pageSize) {
      //更新数据池中的信息,使得view更新
      this.pageSize = pageSize
      //向后端发送分页请求,更新数据
      this.list()
    },
    //监控currentPage的改变
    handleCurrentChange(currentPage) {
      this.currentPage = currentPage
      //向后端发送分页请求,更新数据
      this.list()
    }
5.前端分页查询小结
Vue总结为一句话:方法池三端获取数据,保证Model对View的实时渲染!
  • 数据池就是保证对前端页面的实时渲染
  • 方法池就是通过从前端页面、数据池、后端DB 获取信息从而保证数据池对前端页面的实时渲染

image-20240319153233991

6.结果展示

image-20240319153932395

4.切换数据源为druid

1.pom.xml 引入druid依赖
    <!-- 引入 druid 依赖 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.17</version>
    </dependency>
2.com/sun/furn/config/DruidDataSourceConfig.java 配置文件注入druid数据源
package com.sun.furn.config;

import com.alibaba.druid.pool.DruidDataSource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Description: 注入德鲁伊数据源的配置类
 *
 * @Author sun
 * @Create 2024/3/19 15:40
 * @Version 1.0
 */
@Configuration
@Slf4j
public class DruidDataSourceConfig {
    @Bean
    @ConfigurationProperties("spring.datasource")
    public DruidDataSource druidDataSource() {
        DruidDataSource druidDataSource = new DruidDataSource();
        //日志输出,查看是否注入
        log.info("数据源={}" + druidDataSource);
        return druidDataSource;
    }
}

3.启动测试

image-20240319155344637

5.带条件查询分页显示后端实现

1.com/sun/furn/controller/FurnController.java 添加方法
    /**
     * 根据条件(name)进行查询
     *
     * @param pageNum  第几页 默认1
     * @param pageSize 页的大小 默认5
     * @param search   查询条件 默认为空即不带条件
     * @return
     */
    @GetMapping("/furnsByCondition")
    public Result listFurnsByConditionPage(@RequestParam(defaultValue = "1") Integer pageNum,
                                           @RequestParam(defaultValue = "5") Integer pageSize,
                                           @RequestParam(defaultValue = "") String search) {
        // 获取QueryWrapper对象
        QueryWrapper<Furn> query = Wrappers.query();
        if (StringUtils.hasText(search)) {
            //查询条件是name like。。。
            query.like("name", "%" + search + "%");
        }

        //返回page对象
        Page<Furn> page = furnService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }
2.postman测试

image-20240319162851610

6.带条件查询分页显示前端实现

1.src/views/HomeView.vue 基本准备
1.前端界面

image-20240319163811086

2.数据池

image-20240319163921012

2.src/views/HomeView.vue 直接修改方法区的list方法
    // 分页显示家居信息(条件查询)
    list() {
      request.get("/api/furnsByCondition", {
        params: {
          // 请求参数
          pageNum: this.currentPage,
          pageSize: this.pageSize,
          search: this.search //这里添加的根据名字进行查询的条件,如果没有在搜索框里输入,则是空,也就是不带条件进行查询
        }
      }).then(
          res => {
            this.tableData = res.data.records
            this.total = res.data.total
          }
      )
    }
3.结果展示

image-20240319164013455

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/274398.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

外包干了6天,技术明显进步。。。

我是一名大专生&#xff0c;自19年通过校招进入湖南某软件公司以来&#xff0c;便扎根于功能测试岗位&#xff0c;一晃便是近四年的光阴。今年8月&#xff0c;我如梦初醒&#xff0c;意识到长时间待在舒适的环境中&#xff0c;已让我变得不思进取&#xff0c;技术停滞不前。更令…

springboot企业级抽奖项目-整体展示

项目地址 GitHub - kiorr/lottery: 企业红包雨项目 star截图q&#xff1a;3353441618可以领取资料 原型效果 前台 后台 业务分析 项目介绍 项目概述 京东的红包雨大家可能都参与过&#xff0c;在某段时间内随机发放不同的红包 本项目为一个通用的红包雨模式抽奖系统&…

腾讯云服务器多少钱一个月?5元1个月,这价格没谁了

2024腾讯云服务器多少钱一个月&#xff1f;5元1个月起&#xff0c;腾讯云轻量服务器4核16G12M带宽32元1个月、96元3个月&#xff0c;8核32G22M配置115元一个月、345元3个月&#xff0c;腾讯云轻量应用服务器61元一年折合5元一个月、4核8G12M配置646元15个月、2核4G5M服务器165元…

linux单机部署hadoop

1.下载安装包 https://archive.apache.org/dist/hadoop/common/ 2.上传压缩 3.修改配置文件 1)设置JDK的路径 cd /usr/local/software/hadoop-3.1.3/etc/hadoop vi hadoop-env.sh export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64/ 查看…

RK3588_Qt交叉编译环境搭建

buildroot编译 进入 /home/linux/plat/rk3588/sdk/buildroot 目录下&#xff0c;执行 Source ./envsetup.sh 选择具体平台编译&#xff0c;后再执行make编译 /home/linux/plat/rk3588/sdk/buildroot/output/OK3568/images 生成的rootfs.ext2镜像重新烧写到rk3568开发板中&…

简单对已有云服务器进行linux环境搭建以及共享服务器

前言&#xff1a; 外壳程序&#xff1a;Xshell7 云服务器&#xff1a;华为云 服务器操作系统&#xff1a;centos7 1.云服务的设置&#xff08;这里购买的华为云&#xff0c;阿里腾讯都可以&#xff09; 区域尽量选择距离所处地距离自己最近的区域。镜像这里选择的为centos7.…

流畅的Python(二十一)-类元编程

一、核心要义 1.类元编程时指在运行时创建或定制类的技艺 2.类是一等对象,因此任何时候都可以使用函数新建类&#xff0c;而无需使用class关键字 3.类装饰器也是函数&#xff0c;不过能够审查、修改&#xff0c;甚至把被装饰的类替换为其它类。 4.元类(type类的子类)类编程…

框架篇常见面试题

1、Spring框架的单例bean是线程安全的吗&#xff1f; 2、什么是AOP&#xff1f; 3、Spring的事务是如何实现的&#xff1f; 4、Spring事务失效的场景 5、SpringBean的声明周期 6、Spring的循环依赖 7、SpringMVC的执行流程 8、SpringBoot自动配置原理 9、Spring常见注解

mysql重构

力扣题目链接 列转行 SELECT product_id, store1 store, store1 price FROM products WHERE store1 IS NOT NULL UNION SELECT product_id, store2 store, store2 price FROM products WHERE store2 IS NOT NULL UNION SELECT product_id, store3 store, store3 price FROM p…

Livox激光雷达 mid360 跑 fastlio2 - 流程记录

mid360 跑 fastlio2 一、配置 mid360 环境1.1、主机配置静态IP为192.168.1.501.2、Livox-SDK21.3、Livox_ros_driver2二、Fast-lio22.1、下载源码2.2、修改代码2.3、编译、运行 提示一下&#xff0c;如果在一些板上&#xff08;比如rk3399&#xff0c;或者是树莓派 &#xff0…

晶圆制造过程中常用载具的类型

晶圆载具用于硅片生产、晶圆制造以及工厂之间晶圆的储存、传送、运输以及防护。晶圆载具种类很多,如FOUP用于晶圆制造工厂中晶圆的传送;FOSB用于硅片生产与晶圆制造工厂之间的运输;CASSETTE载具可用于工序间运送以及配合工艺使用。 OPEN CASSETTE OPEN CASSETTE主要在晶圆…

QT自定义带参数信号与槽函数

我的软件界面是这样的&#xff0c;点击图标按钮后进入子项的参数配置。 由于按钮众多&#xff0c;每个按钮都有点击事件&#xff0c;一个个去写是在太多麻烦&#xff0c;而且我的这个配置软件各个子项的参数配置页面基本是差不多的&#xff0c;只是传递的参数有差异而已。 通过…

PHP+MySQL开发组合:多端多商户DIY商城源码系统 带完整的搭建教程以及安装代码包

近年来&#xff0c;电商行业的迅猛发展&#xff0c;越来越多的商户开始寻求搭建自己的在线商城。然而&#xff0c;传统的商城系统往往功能单一&#xff0c;无法满足商户个性化、多样化的需求。同时&#xff0c;搭建一个功能完善的商城系统需要专业的技术团队和大量的时间成本&a…

【FPGA】摄像头模块OV5640

本篇文章包含的内容 一、OV5640简介1.1 基本概述1.2 工作时序1.2.1 DVP Timing&#xff08;数据传输时序&#xff09;1.2.2 帧曝光工作模式 1.3 OV5640 闪光灯工作模式1.3.1 Xenon Flash&#xff08;氙灯闪烁&#xff09;模式1.3.2 LED 1&2 模式1.3.3 LED 3模式1.3.4 手动开…

【ESP32接入国产大模型之MiniMax】

1. MiniMax 讲解视频&#xff1a; ESP32接入语言大模型之MiniMax MM智能助理是一款由MiniMax自研的&#xff0c;没有调用其他产品的接口的大型语言模型。MiniMax是一家中国科技公司&#xff0c;一直致力于进行大模型相关的研究。 随着人工智能技术的不断发展&#xff0c;自然语…

Python入门(小白友好)

知识图谱 搭建环境 安装Python:Download Python | Python.org 安装PyCharm:Download PyCharm: The Python IDE for data science and web development by JetBrains 注意:专业版本是收费的,新手小白使用社区版(community)即可 创建第一个项目: 一些PyCharm的设置(也适用…

Springboot和Spring Cloud版本对应

Spring在不断地升级&#xff0c;各个版本存在一些不兼容的地方&#xff0c;为了避免出现问题&#xff0c;最好注意使用正确的版本。 官网的对应关系&#xff1a;https://start.spring.io/actuator/info 如下图&#xff1a; 下面附一下创建项目的工具&#xff1a; Spring官方…

ClickHouse--13--springboot+mybatis配置clickhouse

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 ClickHouse1.添加maven依赖2.配属数据源3.参数配置4.Druid连接池配置5.entity6.Mapper接口7.Mapper.xml8.controller接口9.创建一个clickhouse表10.测试 ClickHouse…

【复现】【免费】基于多时间尺度滚动优化的多能源微网双层调度模型

目录 主要内容 部分代码 结果一览 1.原文结果 2.程序运行结果 下载链接 主要内容 该模型参考《Collaborative Autonomous Optimization of Interconnected Multi-Energy Systems with Two-Stage Transactive Control Framework》&#xff0c;主要解决的是一个多…
最新文章