MyBatis 和 MyBatis-Plus 都是用于数据持久化的框架,它们都支持分页查询,但是在 Spring Boot 中的使用方式有所不同。
MyBatis 分页:
MyBatis 本身不提供内置的分页插件,但可以通过集成第三方分页插件来实现分页功能,最常用的是 PageHelper。
-
添加依赖: 在 Spring Boot 项目的
pom.xml
文件中添加 PageHelper 的依赖。<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>最新版本</version> </dependency>
-
配置分页插件: 在 Spring Boot 的配置类中配置 PageHelper,通常不需要额外配置,因为 PageHelper 会自动配置。
@Configuration public class MyBatisConfig { @Bean public PageHelper pageHelper() { return new PageHelper(); } }
-
使用分页: 在服务层或控制器层中使用 PageHelper 的
startPage
方法来指定分页参数,然后执行查询。import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { @Autowired private UserMapper userMapper; public PageInfo<User> getUserPage(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); List<User> users = userMapper.selectAll(); return new PageInfo<>(users); } }
MyBatis-Plus 分页:
MyBatis-Plus 提供了内置的分页插件,使用起来更加方便。
-
添加依赖: 在 Spring Boot 项目的
pom.xml
文件中添加 MyBatis-Plus 的依赖。<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本</version> </dependency>
-
配置分页插件: 在 Spring Boot 的配置类中配置 MyBatis-Plus 的分页插件。
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 MyBatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); return interceptor; } }
-
使用分页: 在服务层中使用 MyBatis-Plus 的
Page
对象来指定分页参数,然后调用 Mapper 接口的selectPage
方法。import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { @Autowired private UserMapper userMapper; public IPage<User> getUserPage(int pageNum, int pageSize) { Page<User> page = new Page<>(pageNum, pageSize); return userMapper.selectPage(page, null); // 第二个参数可以传入查询条件 } }
在 Spring Boot 中使用 MyBatis-Plus 分页时,通常不需要额外的配置,因为 MyBatis-Plus 已经内置了分页插件。而 MyBatis 则需要集成 PageHelper 这样的第三方分页插件。两者都能很好地满足分页查询的需求,选择哪一个取决于你的项目需求和个人偏好。