使用MyBatis Plus的分页插件

使用MyBatis Plus的分页插件主要分为两个步骤:配置和使用。下面是这两个步骤的详细说明:

1. 配置分页插件

pom.xml中添加依赖

确保你的项目中已经添加了MyBatis Plus的依赖。如果你使用的是Maven,请在pom.xml文件中添加以下依赖:

  <!-- MyBatis Plus -->
   <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.5.5</version> <!-- 使用最新版本 -->
   </dependency>
配置分页插件

在Spring Boot配置类中配置PaginationInterceptor,这是MyBatis Plus的分页插件。

@Configuration
public class MyBatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

    @Bean
    public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        factoryBean.setPlugins(new Interceptor[]{paginationInterceptor()}); // 注册分页插件
        return factoryBean.getObject();
    }
}

MyBatis Plus 3.4.0及以后,PaginationInterceptor已被废弃,新的分页拦截器PaginationInnerInterceptor被推荐使用。

@Configuration
public class MyBatisPlusConfig {

    /**
     * 3.4.0之后提供的拦截器的配置方式;
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        // 添加分页拦截器
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return mybatisPlusInterceptor;
    }

    /**
     * 配置SqlSessionFactory,将拦截器注册进去
     */
    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        // 注册自定义的拦截器
        factoryBean.setPlugins(new Interceptor[]{mybatisPlusInterceptor()});
        return factoryBean.getObject();
    }
}

2. 使用分页插件

创建Mapper接口

创建一个Mapper接口,继承BaseMapper<T>,其中T是你实体类的类型。

package com.example.demo.mapper;

import com.example.demo.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

public interface UserMapper extends BaseMapper<User> {
}
实现分页查询

使用Page对象进行分页查询。

package com.example.demo.service;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {

    @Resource
    private UserMapper userMapper;

    public Object getUsers(int pageNum, int pageSize) {
        // 分页查询
        Page<User> page = new Page<>(pageNum, pageSize);
        userMapper.selectPage(page, null); // 第二个参数可以是查询条件,这里表示没有特定的查询条件

        return page.getRecords(); // 返回分页后的记录列表
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值