在 Spring Boot 项目中使用分页插件的两种常见方式

在 Spring Boot 项目中使用分页插件主要有两种常见方式:使用 MyBatis-Plus 的分页插件和使用 PageHelper 插件。以下是两种方式的详细使用方法:

使用 MyBatis-Plus 分页插件

1. 添加依赖pom.xml 文件中添加 MyBatis-Plus 的依赖:

复制代码
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>版本号</version>
</dependency>

2. 配置分页插件 创建一个配置类,添加分页插件的配置:

复制代码
@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

3. 使用分页功能 在 Service 层中,使用 Page 类进行分页查询:

复制代码
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public IPage<User> getUserPage(int current, int size) {
        Page<User> page = new Page<>(current, size);
        return userMapper.selectPage(page, null);
    }
}

使用 PageHelper 分页插件

1. 添加依赖pom.xml 文件中添加 PageHelper 的依赖:

复制代码
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>版本号</version>
</dependency>

2. 配置 PageHelperapplication.yml 文件中配置 PageHelper:

复制代码
pagehelper:
  helperDialect: mysql
  reasonable: true

3. 使用分页功能 在 Service 层中,使用 PageHelper 进行分页查询:

复制代码
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public PageInfo<User> getUserPage(int pageNum, int pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        List<User> users = userMapper.list();
        return new PageInfo<>(users);
    }
}

两种分页插件各有优势,MyBatis-Plus 的分页插件与 MyBatis-Plus 的 CRUD 接口无缝集成,使用简单;PageHelper 则是一个独立的分页插件,支持多种数据库,且分页逻辑与 Mapper 层解耦,使用灵活。你可以根据项目需求选择合适的分页插件。

相关推荐
IT_陈寒2 小时前
Redis缓存击穿:3个鲜为人知的防御策略,90%开发者都忽略了!
前端·人工智能·后端
uzong3 小时前
Harness Engineering 是什么?一场新的 AI 范式已经开始
人工智能·后端·架构
左左右右左右摇晃3 小时前
Java并发——synchronized锁
java·开发语言
唐叔在学习4 小时前
Python桌面端应用最小化托盘开发实践
后端·python·程序员
yuhaiqiang4 小时前
被 AI 忽悠后,开始怀念搜索引擎了?
前端·后端·面试
sxlishaobin4 小时前
Java I/O 模型详解:BIO、NIO、AIO
java·开发语言·nio
二闹4 小时前
Python文件读取三巨头你该选择哪一个?
后端·python
彭于晏Yan4 小时前
Spring AI(二):入门使用
java·spring boot·spring·ai
有一个好名字5 小时前
vibe codeing 开发流程
java
兑生5 小时前
【灵神题单·贪心】3745. 三元素表达式的最大值 | 排序贪心 | Java
java·开发语言