首页 > 其他分享 >使用mybatis-plus拦截器MybatisPlusInterceptor进行分页查询案例

使用mybatis-plus拦截器MybatisPlusInterceptor进行分页查询案例

时间:2024-07-25 10:41:13浏览次数:8  
标签:拦截器 分页 boot 查询 MybatisPlusInterceptor plus com public

在MyBatis-Plus中,分页功能通常是通过配置MybatisPlusInterceptor(或其前身PaginationInterceptor)来实现的,这是一个全局的拦截器,用于拦截MyBatis的SQL执行,并在其中添加分页逻辑。以下是一个使用MybatisPlusInterceptor进行分页查询的案例:

  1. 添加依赖
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
  1. 配置Mapper接口
@Mapper
public interface BookDao extends BaseMapper<Book> {
    
}
  1. 配置MybatisPlusInterceptor
package com.atheima.config;

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;

@Configuration
public class MPConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        // 添加分页插件
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        // 如果有其他插件,可以继续添加
        // interceptor.addInnerInterceptor(...);
        return  mybatisPlusInterceptor;
    }
}

注意:从MyBatis-Plus 3.4.0开始,PaginationInterceptor被重命名为PaginationInnerInterceptor,并且需要作为MybatisPlusInterceptor的一个内部拦截器来添加。
4. 使用分页API进行查询
在Service或Mapper接口中,使用MyBatis-Plus提供的IPage接口和Page类进行分页查询。

    @Autowired
    private BookDao bookDao;
    
    public IPage selectUserPage(int currentPage, int pageSize) {
        // 创建分页对象
        Page page = new Page(currentPage, pageSize);
        // 调用Mapper接口方法进行分页查询
        return bookDao.selectPage(page, null); // null表示没有查询条件
        // 返回分页结果
    }
  1. 测试
@Autowired
private BookService bookService;

@Test
public void testGetPage2(){
   bookService.selectUserPage(1,6);
}

标签:拦截器,分页,boot,查询,MybatisPlusInterceptor,plus,com,public
From: https://www.cnblogs.com/DuWenjie/p/18322474

相关文章

  • 【组件开发】基于elementplus组件开发的audio音频播放器
    1<template>2<divclass="my-audio">3<!--音频播放器,使用timeupdate事件更新播放进度-->4<audio@timeupdate="updateProgress"controlsref="audioRef">5<source:src="audioUrl&quo......
  • 配置文件mybatis-plus: global-config: db-config: table-prefix: true
    具体来说,table-underline的含义是:当table-underline设置为true时:假设你有一个实体类名为UserInfo,那么MyBatis-Plus会默认去数据库中寻找名为user_info的表(即,驼峰命名法自动转换为下划线命名法)。同理,如果你的数据库表名是user_info,但你的实体类名是UserInfo,那么M......
  • fasterWhisper和MoneyPrinterPlus无缝集成
    MoneyPrinterPlus之前使用的是各种云厂商的语音识别服务来进行语音的视频和字幕的识别工作。但是很多小伙伴说云服务用不起。那么没办法,MoneyPrinterPlus上线最新版本,支持fasterWhisper本地语音识别模型。赶紧来体验吧。软件准备当然,前提条件就是你需要下载MoneyPrinterPlus......
  • mybatisPlus3.4 自定义sqlSessionFactory sql注入器失效、mybatis-plus批量插入报错In
    文章目录一、报错背景二、解决方法在mybatis-plus项目中集成自定义批量插入方法后报错。以下整理一下报错及解决方法。一、报错背景mybatis-plus是不提供insertList批量插入方法的,本人在自定义批量插入方法后,启动时正常,但是执行到insertList时报错。org.apache.i......
  • 使用MyBatis Plus需要用上的相关依赖
    1.pom.xml添加<!--MyBatisPlus依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version>......
  • MyBatis-Plus 提供了自动生成代码超详细教程
    MyBatis-Plus提供了自动生成代码的工具(代码生成器),可以快速生成实体类、Mapper接口、Service类以及Controller等代码。这大大提高了开发效率,特别是在处理大型项目时。以下是一个使用MyBatis-Plus自动生成代码的详细指南:1.添加依赖在pom.xml中添加MyBatis-Plus......
  • MyBatis 和 MyBatis-Plus 介绍及适用场景
    MyBatis和MyBatis-Plus介绍及适用场景MyBatis介绍MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数及获取结果集的工作。与Hibernate这种全自动ORM框架不同,MyBatis允许开发者通过简单......
  • 优化循环操作数据库批量处理数据mybatis plus
    优化循环操作数据库批量处理数据mybatisplus大家好我是小星,今天在技术交流群里看见有人在循环中修改数据库,觉得不太好在此总结几种批量修改数据库的方法未优化前代码:for(inti=0;i<pojolist.size();i++){Pojopojo=pojolist.get(i);pojo.setAge(1);m......
  • SpringBoot升级到3.3.2版本,JDK升级到17,引入Mybatis-plus后启动报错:Property 'sqlSessi
    【问题描述】2024-07-23T15:16:07.174+08:00WARN2604---[questionnaire][main]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.factory.UnsatisfiedDependen......
  • mybatis-plus对表的查询方式
    publicPage<WmsInventoryVO>queryPage(WmsInventoryQueryquery,Pageablepage){List<WmsInventory>list=selectList(query,page);List<WmsInventoryVO>res=inventoryConvert.dos2vos(list);injectAreaAndItemInfo(r......