首页 > 其他分享 >Mybatis18 - 分页插件

Mybatis18 - 分页插件

时间:2023-02-14 19:47:26浏览次数:45  
标签:index 插件 pageNum 分页 pageSize Mybatis18 页码

分页插件

JavaWeb 服务器实现分页需要在SQL中使用 limit ,需要获取 index, pageSize, pageNum 等数据

pageSize:每页显示的条数

pageNum:当前页的页码

index:当前页的起始索引,index=(pageNum-1)*pageSize

index = ( pageNum - 1 ) * pageSize

查询 SQL 时,limit ( index, pageSize )

pageSize=4,pageNum=1 -> index=0 limit 0,4

pageSize=4,pageNum=3 -> index=8 limit 8,4

pageSize=4,pageNum=6 -> index=20 limit 8,4

count:总记录数

totalPage:总页数

totalPage = count / pageSize;

if ( count % pageSize != 0 ){

​ totalPage += 1;

}

首页 上一页 2 3 4 5 6 下一页 末页

所有以上操作都可以通过分页插件直接实现

分页插件的使用步骤

①添加依赖

<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>5.2.0</version>
</dependency>

②配置分页插件

在MyBatis的核心配置文件中配置插件

<plugins>
	<!--设置分页插件-->
	<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>

分页插件的使用

1. 在查询功能之前使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能

pageNum:当前页的页码

pageSize:每页显示的条数

2. 在查询获取list集合之后,使用PageInfo<T> pageInfo = new PageInfo<>(List<T> list, int navigatePages)获取分页相关数据

list:分页之后的数据

navigatePages:导航分页的页码数

3. 测试
@Test
public void testPage(){
    SqlSession sqlSession = SqlSessionUtil.getSqlSession();
    EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
    //查询功能之前开启分页功能
    Page<Object> page = PageHelper.startPage(5, 4);
    List<Emp> list = mapper.selectByExample(null);
    //查询功能之后可以获取分页相关的所有数据
    //PageInfo ( 查询结果,导航页码 ) -->  首页 上一页 导航页码 下一页 尾页
    //导航页码 = 5 在上一页与下一页间显示 5 页,以当前页为中心
    PageInfo<Emp> pageInfo = new PageInfo<>(list, 5);
    list.forEach(System.out::println);
    System.out.println(pageInfo);
}
4. 分页相关数据

PageInfo{

pageNum=8, pageSize=4, size=2, startRow=29, endRow=30, total=30, pages=8,

list= Page{count=true, pageNum=8, pageSize=4, startRow=28, endRow=32, total=30, pages=8, reasonable=false, pageSizeZero=false},

prePage=7, nextPage=0,

isFirstPage=false, isLastPage=true,

hasPreviousPage=true, hasNextPage=false,

navigatePages=5, navigateFirstPage4, navigateLastPage8, navigatepageNums=[4, 5, 6, 7, 8]

}

pageNum:当前页的页码

pageSize:每页显示的条数

size:当前页显示的真实条数

total:总记录数

pages:总页数

prePage:上一页的页码

nextPage:下一页的页码

isFirstPage/isLastPage:是否为第一页/最后一页

hasPreviousPage/hasNextPage:是否存在上一页/下一页

navigatePages:导航分页的页码数

navigatepageNums:导航分页的页码,[1,2,3,4,5]

标签:index,插件,pageNum,分页,pageSize,Mybatis18,页码
From: https://www.cnblogs.com/Ashen-/p/17120683.html

相关文章

  • RobotFramework+Eclipse环境安装之:Eclipse中安装RED插件
    步骤如下:1、eclipse包解压后打开,双击eclipse.exe2、Help->installNewSoftware3、选择本地RED包4、勾选5、安装6、同意7、安装进度8、勾选9、重启 ......
  • fiddler 安装编码插件
    1.解压编程猫插件2.把解压文件全部复制到  D:\02-software_python\15-Fiddler\install\Fiddler\Scripts文件夹里3.进入D:\02-software_python\15-Fiddler\install\Fid......
  • mysql limit分页用法讲解
    1.情景展示在Oracle当中,使用rownum来进行分页;而在mysql中,是没有rownum的,需要通过limit来实现。2.用法介绍limit[offset,]rowslimit后面可以跟一个参数,也可以跟两个参数;格式......
  • elementPlus 分页实现首页,尾页的功能
    跪求出一个这个方法吧,自己写真麻烦,但是也是闲着没事,写一个吧 <divclass="pagefun"><!--首页按钮disabled是鼠标禁止状态......
  • element 封装组件之分页
    <!--background按钮背景色--><el-pagination@size-change="sizeChange"@current-change="currentChange":current-page.sync="queryData......
  • Solon2 开发之插件,三、插件体外扩展机制(E-Spi)
    插件体外扩展机制,简称:E-Spi。用于解决fatjar模式部署时的扩展需求。比如:把一些“业务模块”做成插件包放到体外把数据源配置文件放到体外,方便后续修改其中,.propert......
  • Solon2 开发之插件,四、插件热插拔管理机制(H-Spi)
    插件热插拔管理机制,简称:H-Spi。是框架提供的生产时用的另一种高级扩展方案。相对E-Spi,H-Spi更侧重隔离、热插热拔、及管理性。应用时,是以一个业务模块为单位进行开发,且封......
  • Solon2 开发之插件,一、插件
    SolonPlugin是框架的核心接口,简称“插件”。其本质是一个“生命周期”接口。它可让一个组件类参与程序的生命周期过程(这块看下:《应用启动过程与完整生命周期》):@Function......
  • BurpSuite插件——新建UI界面且监听访问HTTP信息
    一、写在前面很久没更新了,一个是事情比较多、杂,而且这段时间有很多新知识和认知的冲击,不得不停下来沉淀一下。今天起正式开始一个新的模块——burp插件开发。 二、......
  • 断点调试/认证/权限/频率-源码分析/基于APIView编写分页/异常处理
    内容概要断点调试认证/权限/频率-源码分析基于APIView编写分页异常处理断点调试#程序以debug模式运行,可以在任意位置停下,查看当前情况下变量数据的变化情况#p......