springboot mybatisplus 分页
时间: 2025-05-19 19:24:43 浏览: 7
### Spring Boot 和 MyBatis Plus 实现分页的功能
在实际开发中,当面对海量数据时,分页是一种常见的解决方案。以下是基于 Spring Boot 和 MyBatis Plus 的分页实现示例。
#### 配置分页插件
为了启用 MyBatis Plus 提供的分页功能,需要先完成分页插件的配置工作。可以通过两种方式进行设置:
1. **创建独立的配置类**
创建一个名为 `MybatisPlusConfig` 的配置类,并注册 `MybatisPlusInterceptor` 插件实例[^2]。
```java
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(DbType.MYSQL));
return interceptor;
}
}
```
2. **直接在启动类中引入分页插件(推荐方式)**
如果项目规模较小或者希望减少额外文件的数量,则可以直接在主程序入口处加载分页插件。
#### 编写实体类和服务层逻辑
假设有一个表名叫做 `user`,对应的实体类如下所示:
```java
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
```
接着定义 Mapper 接口继承自 `BaseMapper<User>` 并提供基本 CRUD 方法支持[^1]:
```java
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {}
```
最后编写 Service 层来调用分页查询接口 `selectPage()`[^1]:
```java
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
public IPage<User> getUserList(Page page) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
return userMapper.selectPage(page, queryWrapper);
}
}
```
在此基础上,客户端只需传递当前页码以及每页显示条数给服务端即可获取对应范围内的记录集合[^1]。
#### 测试代码片段
下面是一个简单的测试案例用于验证上述流程是否正常运作:
```java
@SpringBootTest
class DemoApplicationTests {
@Autowired
private IUserService userService;
@Test
void testPagination() {
Page<User> page = new Page<>(1, 5); // 当前第一页,每页五条数据
IPage<User> result = userService.getUserList(page);
System.out.println("总记录数:" + result.getTotal());
List<User> records = result.getRecords();
for (User u : records){
System.out.println(u.getName());
}
}
}
```
以上就是利用 Spring Boot 结合 MyBatis Plus 完成分页操作的具体过程说明^。
问题
阅读全文
相关推荐

















