在 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 层解耦,使用灵活。你可以根据项目需求选择合适的分页插件。

相关推荐
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!1 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
俊昭喜喜里1 天前
java中的继承和多态的区别
java
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
譕痕1 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码1 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖1 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时1 天前
01-06-A-JVM排查实战详解
java·jvm