MyBatis-Plus分页 mdash  mdash PageHelper和IPage介绍

MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上提供了很多方便开发的功能,比如分页插件、性能分析插件、自动生成代码等。

在使用 MyBatis-Plus 进行分页查询时,有两种常用的方式:PageHelper 和 IPage。

## PageHelper

PageHelper 是 MyBatis 的分页插件,它的作用是为开发者提供一种简单、快速、方便的分页查询方式。使用 PageHelper 进行分页查询,需要引入对应的 jar 包,并在 MyBatis 的配置文件中配置插件。

1. 引入依赖

```xml

com.github.pagehelper

pagehelper

${pagehelper.version}

```

2. 配置插件

在 MyBatis 的配置文件中加入以下内容:

```xml

```

3. 使用 PageHelper 进行分页查询

在查询方法中加入以下内容:

```java

PageHelper.startPage(pageNum, pageSize);

List userList = userDao.selectByExample(example);

PageInfo pageInfo = new PageInfo<>(userList);

return pageInfo;

```

其中,`pageNum` 表示要查询的页码,`pageSize` 表示每页显示的记录数。使用 `PageHelper.startPage` 方法指定页码和每页显示的记录数,然后执行查询语句,得到分页查询的结果。最后将查询结果封装到 PageInfo 对象中返回。

PageHelper 非常简单易用,但它有一些缺点:

1. 需要引入额外的 jar 包,会增加项目的依赖。

2. 需要进行配置,比较繁琐。

3. 不支持多表查询。

因此,如果需要一个更加简单、方便的分页查询方式,可以尝试使用 MyBatis-Plus 提供的 IPage 接口。

## IPage

IPage 是 MyBatis-Plus 提供的分页查询接口,它使用起来非常方便,只需要在查询方法中指定页码和每页显示的记录数即可。

1. 引入依赖

```xml

com.baomidou

mybatis-plus-boot-starter

${mybatis-plus.version}

```

2. 配置分页插件

在 MyBatis 的配置文件中加入以下内容:

```xml

```

3. 使用 IPage 进行分页查询

在查询方法中加入以下内容:

```java

Page page = new Page<>(pageNum, pageSize);

QueryWrapper queryWrapper = new QueryWrapper<>();

queryWrapper.eq("username", username);

IPage iPage = userDao.selectPage(page, queryWrapper);

return iPage;

```

`Page` 类继承自 `com.baomidou.mybatisplus.extension.plugins.pagination.Page`,构造器的两个参数分别表示要查询的页码和每页显示的记录数。使用 `QueryWrapper` 指定查询条件,并使用 `userDao.selectPage` 方法执行查询。最后将查询结果封装到 IPage 对象中返回。

IPage 的使用非常方便,只需要在查询方法中指定页码和每页显示的记录数即可,不需要进行额外的配置。并且,IPage 支持多表查询,这是 PageHelper 不支持的。

## 小结

总的来说,使用 PageHelper 进行分页查询非常简单易用,但需要引入额外的 jar 包,并且需要进行配置,有一些繁琐之处。而使用 MyBatis-Plus 提供的 IPage 接口,则非常方便,只需要在查询方法中指定页码和每页显示的记录数即可,不需要进行额外的配置。并且,IPage 支持多表查询,这是 PageHelper 不支持的。

下面举一个 IPage 的完整例子:

```java

@Service

public class UserServiceImpl implements UserService {

@Autowired

private UserDao userDao;

@Override

public IPage getUserList(int pageNum, int pageSize, String username) {

Page page = new Page<>(pageNum, pageSize);

QueryWrapper queryWrapper = new QueryWrapper<>();

queryWrapper.eq("username", username);

IPage iPage = userDao.selectPage(page, queryWrapper);

return iPage;

}

}

```

其中,`UserDao` 是继承自 `BaseMapper`,并且已经通过 `@Mapper` 注解注入到 Spring 容器中。在 Service 类中,直接调用 `userDao.selectPage` 方法进行分页查询,并将查询结果封装到 IPage 对象中返回。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(23) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部