mybatis-plus 与oracle 分页
时间: 2025-02-09 17:37:47 浏览: 54
### MyBatis-Plus 中 Oracle 数据库分页实现
MyBatis-Plus 提供了便捷的方式来处理不同数据库的分页查询。对于 Oracle 数据库而言,可以通过集成 `PageHelper` 或者利用 MyBatis-Plus 自带的分页插件来完成这一任务。
#### 使用 MyBatis-Plus 自带分页插件
为了使 MyBatis-Plus 支持 Oracle 分页,在项目初始化阶段需配置相应的分页拦截器:
```java
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
```
接着可以在 Mapper 接口中定义查询方法,并通过传递 `Page<T>` 参数来进行分页操作[^1]:
```java
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserMapper extends BaseMapper<User> {
default IPage<User> selectUserPage(Page<User> page, QueryWrapper<User> queryWrapper) {
return this.selectPage(page, queryWrapper);
}
}
```
调用此方法时可以指定当前页码以及每页显示记录数:
```java
IPage<User> userPage = new Page<>(currentPage, pageSize); // 创建分页对象
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("status", "active"); // 添加条件过滤
userPage = userMapper.selectUserPage(userPage, wrapper);
// 获取数据列表及总条目数量
List<User> userList = userPage.getRecords();
long total = userPage.getTotal();
```
需要注意的是,由于 Oracle 特有的语法特性(如 ROWNUM),MyBatis-Plus 已经内置适配逻辑以确保生成正确的 SQL 查询语句[^4]。
阅读全文
相关推荐


















