为什么PageHelper getList()返回的不是查询结果集而是一个page对象

为什么PageHelper getList()返回的不是查询结果集而是一个page对象

PageHelper是一个Mybatis分页插件,它可以非常方便地实现分页功能。在使用PageHelper进行分页查询时,我们调用getList()方法获取查询结果。但是getList()返回的并不是查询结果集,而是一个page对象。为什么会这样呢?下面我们来探究一下。

page对象的功能

在分页查询中,我们需要同时查询总记录数和当前页的数据。如果我们直接返回查询结果集,就没有办法获取总记录数了。因此PageHelper返回了一个page对象,它包含了分页查询的所有相关信息,包括查询结果、总记录数、分页信息等。

PageHelper的做法

为了实现分页查询,PageHelper在底层进行了一系列处理。当我们使用PageHelper进行分页查询时,PageHelper会在查询之前自动设置分页信息,并在查询结果之后自动将结果集包装成一个Page对象。

  1. 在查询之前,PageHelper会拦截我们的查询方法,并在底层设置分页信息,包括当前页码、每页显示条数等,获取查询结果集的同时会获取总记录数。
  2. 在查询结果之后,PageHelper会自动将查询结果集包装成一个Page对象,并把查询结果和分页信息封装到Page对象中。
  3. 我们调用getList()方法获取的就是Page对象,通过Page对象可以获取查询结果、总记录数和分页信息等。

总结

PageHelper getList()返回的不是查询结果集而是一个Page对象,是为了方便实现分页查询。PageHelper在底层进行了一系列处理,自动设置分页信息并封装查询结果到Page对象中,从而使我们的分页查询更加简单方便。因此,我们在使用PageHelper时只需关注查询方法的参数和返回值即可,分页信息和查询结果都可以通过Page对象获取。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享