mybatis的两种分页方式:RowBounds和PageHelper

1.

原理:拦截器。

使用方法:

RowBounds:在mapper.java中的方法中传入RowBounds对象

//接口方法
public List<Honor> getHonorList(HashMap<String, Object> maps,RowBounds rowBounds);

//调用方法
RowBounds rowBounds = new RowBounds(offset, page.getPageSize()); // offset起始行 // limit是当前页显示多少条数据

RowBounds  rowBounds = new RowBounds(2, 2);
    List<Honor> honors = studentMapper.getHonorList(maps,rowBounds);

Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页,可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。

分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。

举例:select * from student,拦截sql后重写为:select t.* from (select * from student)t limit 0,10

2.Mybatis的插件 PageHelper 分页查询使用方法

https://blog.csdn.net/maoyuanming0806/article/details/77720754

Mybatis的一个插件,PageHelper,非常方便mybatis分页查询。国内牛人的一个开源项目,有兴趣的可以去看源码,都有中文注释(ps:某些源码一大堆英文,痛哭流涕!)

在github上仓库地址为:Mybatis-PageHelper

它支持基本主流与常用的数据库,这可以在它的文档上看到。这里记录一下使用的基本方法

0.查看文档与使用准备
开发文档有中文文档也有英文文档

PageHelper官方文档


官方地址

https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md

Maven依赖

猜你喜欢

转载自www.cnblogs.com/lukelook/p/11099382.html