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

在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);
}

posted @   文采杰出  阅读(799)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2023-07-25 centos开机自启动
点击右上角即可分享
微信分享提示