springboot使用Mybatis-Plus实现分页查询

2023-11-20

1、导入依赖

        MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

        我个人感觉使用mybatis的好处就是为了少些sql语句,偷偷的偷会懒。只要我们将自己得mapper继承BaseMapper 就可以实现基本的curd了。但是这样我们就写不了sql语句了,然后就会像我一样将sql语句忘掉,最后还得掉过头来学习sql的编写。不知道你们怎么看,反正我是喜欢偷懒,嘿嘿。

        好了,话不多说,附上Mybatis-Plus的依赖:

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3.1</version>
        </dependency>

        我是用的是3.4.3.1版本的依赖,倘若你想使用其他版本的依赖,你也可以自行去Maven仓库查找,这里我就附上 仓库地址:maven仓库

2、编写分页config 

        我们需要在我们的项目文件下面创建一个从config的包文件夹,在这个包文件夹下面编写我们所需要的config类,我们的分页插件config自然也是在这个包文件夹下面。

 下面直接附上config层的代码:

package com.classfee.chen.common.Config;

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

@Configuration
@MapperScan("com.classfee.chen.Mapper")
public class MybatisPlusConfig {

    /**
     *
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

        这段代码有一下几个需要注意的点 :

  • 我们要将mybatisPlusInterceptor 这个方法注册到Bean里面,不然我们的插件就会失效。
  • 使用@MapperScan这个注解,让系统扫描我们的Mapper类。注意一定要指定正确的Mapper地址。
  • 在类方法上上面使用注解:@Configuration表面这是一个config类。

        到这里我们的分页插件也就导入完成了,然后我们就需要去应用了。

3、分页插件应用 

        直接上代码:

@GetMapping
    public Result<?> findPage(@RequestParam(defaultValue = "1") Integer pageNum,
                              @RequestParam(defaultValue = "8") Integer pageSize,
                              @RequestParam(defaultValue = "") String search) {

        if (StrUtil.isNotBlank(search)) {

            Page<UseInfo> useInfoPage = useInfoMapper.selectPage(new Page<>(pageNum, pageSize), Wrappers.<UseInfo>lambdaQuery().orderByDesc(UseInfo::getId).like(UseInfo::getUseName, search));
            return Result.success(useInfoPage);
        } else {
            Page<UseInfo> useInfoPage = useInfoMapper.selectPage(new Page<>(pageNum, pageSize), Wrappers.<UseInfo>lambdaQuery().orderByDesc(UseInfo::getId));
            return Result.success(useInfoPage);
        }

代码解释: 

  •  StrUtil.isNotBlank这个方法是hutool工具类中的一个方法,hutool是一个功能十分强大的工具类,建议了解

附上hutool的maven依赖

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.3</version>
        </dependency>
  • .orderByDesc(UseInfo::getId)的作用是根据id实现逆序查询,也就是说将我们数据库中id值较大的数据放在前面查询出来。
  • .like(UseInfo::getUseName, search)) 这个的作用是实现模糊查询,这个想必大家学过数据库的都知道,就不过多的讲了。

以下为测试成功: 

        

 

我们还可以通过pageNum(当前页面),pageSize(页面大小,也就是一个页面多少条数据),和search(搜索条件,例如用户名)来对我们获取的数据进行出处理。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot使用Mybatis-Plus实现分页查询 的相关文章

随机推荐

  • java中List集合三种获取集合元素方式

    java中List集合三种获取集合元素方式 1 for 2 迭代器 3 增强for循环 List集合常用方法 List作为Collection集合的子接口 不但继承了Collection接口中的全部方法 而且还增加了一些根据元素索引来操作集
  • IntelliJ IDEA出现红色字体解决办法

    如图所示 问题 ApiModel显示红色 点击alt enter提示需要添加io swagger包到classpath中 因为在pom xml中没有把此包引入 如图 解决方案 在pom xml中添加io swagger包 经历1 当我根据I
  • IDE简介

    集成开发环境 IDE Integrated Development Environment 用于提供程序开发环境的应用程序 一般包括代码编辑器 编译器 调试器和图形用户界面等工具 集成了代码编写功能 分析功能 编译功能 调试功能等一体化的开
  • Atlantis 【POJ - 1151】【扫描线模板题+线段树更新】

    题目链接 是一道扫描线的模板题 也是我的第一道扫描线的题了 对扫描线也算是有了第一次的理解 无非就是更新新的向上的区间长度 然后去查询就是了 而查询是O 1 的 因为可以通过树的最上根节点得到的 include
  • KMP比较简单的讲法。

    转载链接 http blog csdn net yearn520 article details 6729426 我们在一个母字符串中查找一个子字符串有很多方法 KMP是一种最常见的改进算法 它可以在匹配过程中失配的情况下 有效地多往后面跳
  • 捕鱼游戏源码(数值+完整项目资源)

    目前捕鱼游戏的玩法 逐渐有这些趋势 捕鱼玩法 消除类玩法 捕鱼玩法 模拟经营玩法 捕鱼玩法 建造养成玩法 这些趋势已经有龙头企业逐渐开始做出尝试 但是对大部分团队来讲 对垂直领域的理解不够深刻 对产品理解不够深刻 团队没有沉淀和积累 通常都
  • chart.js使用学习——柱状图(2:常用属性设置)

    本文介绍柱状图常用属性及效果 柱状图中有部分常用属性与折线图用法相同 本文仅列出这些属性的简要说明 不再详细说明 base 设置图形绘制时的基准值 数值型 默认值为空 设置的值为数值轴上的值 base值未设置 则绘制的柱状图沿数值轴方向的起
  • [解决报错] Invalid attempt to spread non-iterable instance.In order to be iterable, non-array objects mu

    主要原因是因为用let of 方法遍历的时候 有一个参数为null 没有iterable 所以数据处理错误 换成for循环就好
  • 常用搜索引擎使用技巧

    1 指定站内搜索 使用site指定在某网站内搜索 如只在知乎中搜索 liuwons liuwons site zhihu com 2 精确匹配 使用双引号来指定精确匹配单词或短语 如精确搜索 liuwons liuwons 3 模糊搜索 使
  • 通讯编程001——Nodejs快速开发Modbus TCP Master

    本文介绍如何利用ModbusJs库快速开发Modbus TCP Master 相关源码请登录网信数智 wangxinzhihui com 下载 ModbusJs是一个基于Nodejs的Modbus TCP的开发库 目前支持的功能函数有 re
  • vue-tabel 中使用 el-autocomplete 出现的问题

    必须加 popper append to body false popper class vxetableignoreclear 我自己用的话缺一不可 说一下我自己项目中遇到的问题吧 我写的是表格中套表格 会出现就是当下拉选的时候用 sel
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 正则表达式中的特殊字符

    字符 含意 做为转意 即通常在 后面的字符不按原来意义解释 如 b 匹配字符 b 当b前面加了反斜杆后 b 转意为匹配一个单词的边界 或 对正则表达式功能字符的还原 如 匹配它前面元字符0次或多次 a 将匹配a aa aaa 加了 后 a
  • python自学篇十五[Numpy——基础(一):(jupyter Notebook+Anaconda+conda+jupyter配置及简单操作 ]

    文章目录 概括 Numpy Scipy pandas matplotlib 一 Numpy 基础 1 jupyter Notebook 1 安装Anaconda 2 Anaconda是什么 1 Anaconda Navigator 2 Ju
  • DNS欺骗原理及工作工程分析

    DNS欺骗 DNS欺骗是这样一种中间人攻击形式 它是攻击者冒充域名服务器的一种欺骗行为 它主要用于向主机提供错误DNS信息 当用户尝试浏览网页 例如IP地址为XXX XX XX XX 网址为www bankofamerica com 而实际
  • 工作与身体健康之间的平衡

    大厂裁员 称35岁以后体能下滑 无法继续高效率地完成工作 体重上涨 因为35岁以后新陈代谢开始变慢 甚至坐久了会腰疼 睡眠困扰开始加重 在众多的归因中 仿佛35岁的到来 会为一切的焦虑埋下伏笔 实际上 生理年龄不代表全部 体能素质的下降更与
  • 各种汇编器masm masm32 fasm nasm yasm gas的区别

    原文地址 http www verydemo com demo c269 i661 html masm MASM是微软公司开发的汇编开发环境 拥有可视化的开发界面 使开发人员不必再使用DOS环境进行汇编的开发 编译速度快 支持80x86汇编
  • Debug of AMBA AXI Outstanding Transactions

    Verifying today s complex designs is time consuming as simulations run for long time and millions of transaction are exe
  • Win7(WinDbg) + VMware(Win7) 双机调试环境搭建之三

    更多精彩内容 请见 http www 16boke com 环境 主机 Win7 虚拟机 VMware 11 1 0 build 2496824 虚拟机内操作系统 又称GuestOS Win7 WinDbg 适合调试机的相应位数的版本就可以
  • springboot使用Mybatis-Plus实现分页查询

    1 导入依赖 MyBatis Plus opens new window 简称 MP 是一个 MyBatis opens new window 的增强工具 在 MyBatis 的基础上只做增强不做改变 为简化开发 提高效率而生 我个人感觉使