扩展-PageHelper分页插件
1、PageHelper 分页插件简介
1) PageHelper是MyBatis中非常方便的第三方分页插件
2) 官方文档:
https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md
3) 我们可以对照官方文档的说明,快速的使用插件
2、PageHelper的使用步骤
1) 导入相关包pagehelper-x.x.x.jar 和 jsqlparser-0.9.5.jar
2) 在MyBatis全局配置文件中配置分页插件(注意插入顺序位置)
- <plugins>
- <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
- </plugins>
3) 使用PageHelper提供的方法进行分页
4) 可以使用更强大的PageInfo封装返回结果
3、Page对象的使用
1) 在查询之前通过 PageHelper.startPage(页码,条数) 设置分页信息,该方法返回Page对象
- @Test
- public void testPageHelper() throws Exception{
- SqlSessionFactory ssf = getSqlSessionFactory();
- SqlSession session = ssf.openSession();
- try {
- EmployeeMapper mapper =
- session.getMapper(EmployeeMapper.class);
- //设置分页信息
- Page<Object> page = PageHelper.startPage(9, 1);
- List<Employee> emps = mapper.getAllEmps();
- for (Employee employee : emps) {
- System.out.println(employee);
- }
- System.out.println("=============获取分页相关的信息=================");
- System.out.println("当前页: " + page.getPageNum());
- System.out.println("总页码: " + page.getPages());
- System.out.println("总条数: " + page.getTotal());
- System.out.println("每页显示的条数: " + page.getPageSize());
- } finally {
- session.close();
- }
- }
4、PageInfo对象的使用
1) 在查询完数据后,使用PageInfo对象封装查询结果,可以获取更详细的分页信息以及可以完成分页逻辑
- @Test
- public void testPageHelper1() throws Exception{
- SqlSessionFactory ssf = getSqlSessionFactory();
- SqlSession session = ssf.openSession();
- try {
- EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
- //设置分页信息
- Page<Object> page = PageHelper.startPage(9, 1);
- List<Employee> emps = mapper.getAllEmps();
- //
- PageInfo<Employee> info = new PageInfo<>(emps,5);
- for (Employee employee : emps) {
- System.out.println(employee);
- }
- System.out.println("=============获取详细分页相关的信息=================");
- System.out.println("当前页: " + info.getPageNum());
- System.out.println("总页码: " + info.getPages());
- System.out.println("总条数: " + info.getTotal());
- System.out.println("每页显示的条数: " + info.getPageSize());
- System.out.println("是否是第一页: " + info.isIsFirstPage());
- System.out.println("是否是最后一页: " + info.isIsLastPage());
- System.out.println("是否有上一页: " + info.isHasPreviousPage());
- System.out.println("是否有下一页: " + info.isHasNextPage());
- System.out.println("============分页逻辑===============");
- int [] nums = info.getNavigatepageNums();
- for (int i : nums) {
- System.out.print(i +" " );
- }
- } finally {
- session.close();
- }
- }
分页实现: 首页 上一页 1 2 3 4 5 下一页 末页
- package com.atguigu.ssm.util;
- import javax.servlet.http.HttpServletRequest;
- import com.atguigu.ssm.bean.Emp;
- import com.github.pagehelper.PageInfo;
- /**
- * 首页 上一页 1 2 3 4 5 下一页 末页
- *
- */
- public class PageUtil {
- public static String getPageInfo(PageInfo<Emp> pageInfo, HttpServletRequest request) {
- String path = request.getContextPath() + "/";
- StringBuilder builder = new StringBuilder();
- //拼接首页
- builder.append("<a href='"+path+"emps/1'>首页</a>");
- builder.append(" ");
- //拼接上一页
- if(pageInfo.isHasPreviousPage()) {
- builder.append("<a href='"+path+"emps/"+pageInfo.getPrePage()+"'>上一页</a>");
- builder.append(" ");
- }else {
- builder.append("上一页");
- builder.append(" ");
- }
- //拼接页码
- int[] nums = pageInfo.getNavigatepageNums();
- for (int i : nums) {
- if(i == pageInfo.getPageNum()) {
- builder.append("<a style='color:red;' href='"+path+"emps/"+i+"'>"+i+"</a>");
- builder.append(" ");
- }else {
- builder.append("<a href='"+path+"emps/"+i+"'>"+i+"</a>");
- builder.append(" ");
- }
- }
- //拼接下一页
- if(pageInfo.isHasNextPage()) {
- builder.append("<a href='"+path+"emps/"+pageInfo.getNextPage()+"'>下一页</a>");
- builder.append(" ");
- }else {
- builder.append("下一页");
- builder.append(" ");
- }
- //拼接尾页
- builder.append("<a href='"+path+"emps/"+pageInfo.getPages()+"'>尾页</a>");
- builder.append(" ");
- return builder.toString();
- }
- }
扩展-PageHelper分页插件的更多相关文章
- Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件
前言 在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生 ...
- PageHelper分页插件的使用
大家好!今天写ssm项目实现分页的时候用到pageHelper分页插件,在使用过程中出现了一些错误,因此写篇随笔记录下整个过程 1.背景:在项目的开发的过程中,为了实现所有的功能. 2.目标:实现分页 ...
- SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页
SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页 **SpringBoot+Mybatis使用Pagehelper分页插件自动分页,非常好用,不用在自己去计算和组装了. ...
- mybatis pagehelper分页插件使用
使用过mybatis的人都知道,mybatis本身就很小且简单,sql写在xml里,统一管理和优化.缺点当然也有,比如我们使用过程中,要使用到分页,如果用最原始的方式的话,1.查询分页数据,2.获取分 ...
- spring boot 整合pagehelper分页插件
Spring Boot 整合pagehelper分页插件 测试环境: spring boot 版本 2.0.0.M7 mybatis starter 版本 1.3.1 jdk 1.8 ------ ...
- SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件
原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...
- 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法
spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...
- Mybatis的PageHelper分页插件的PageInfo的属性参数,成员变量的解释,以及页面模板
作者:个人微信公众号:程序猿的月光宝盒 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int si ...
- 逆向工程文件example完美结合使用PageHelper分页插件及分页不成功原因
原生的mybatis需要手写sql语句,项目数据库表多了之后,可以让你写sql语句写到手软,于是mybatis官方提供了mybatis-generator:mybatis逆向工程代码生成工具,用于简化 ...
随机推荐
- C#接入SMTP邮件服务
我的个人博客 引入SMTP服务包 //引入邮件服务包using System.Net.Mail;using System.Net; 这两个引用用于C#接入邮件的SMTP服务 控件页面 定时器 为了给用 ...
- UML 类之间的关系
统一建模语言(Unified Modeling Language,UML) 作用:对软件系统进行说明 如果说软件系统是一本小说的话,那么 UML 就是将小说动漫化. 也许你看过这本小说,但是时间一长, ...
- Django-----cookie&session
cookie 保存在用户浏览器端的一个键值对(别人给的凭证) 服务端可以向用户浏览器写cookie 客户端每次发请求会携带cookie去(放在请求头里面) 淘宝的cookie 京东的cookie(h ...
- 使用fastai训练的一个性别识别模型
在学习了python中的一些机器学习的相关模块后,再一次开始了深度学习之旅.不过与上次的TensorFlow框架不同,这一次接触的是fast.ai这样一个东西.这个框架还不稳定,网上也没有相关的中文文 ...
- 1.17 想学好Linux,这些习惯必须养成(初学者必读)
不管是在生活还是工作中,每个人都会逐渐养成一些小习惯.坏习惯一旦形成就很难改正,所在在系统学习 Linux之前,给大家一些建议,刻意去培养一些好的习惯,对自己是很有利的. 学习Linux,要习惯使用命 ...
- 文本框字符限制、focus光标定位
一.为一个元素的所有子元素设置统一样式:.className * { color: #6666 } 二.正则表达式: 1.去除所有HTML标签只保留文字: /<\/?.+?\/?>/2.去 ...
- Java学习笔记-基础语法Ⅶ-集合
集合 集合类特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 这里需要回顾一下,因为数组和字符串一旦创建,就不可改变,需要区分一下 import java.util.ArrayLi ...
- Golang 函数 方法 接口的简单介绍
函数 函数是基本的代码块,通常我们会将一个功能封装成一个函数,方便我们调用,同时避免代码臃肿复杂. 函数的基本格式 func TestFunc(a int, b string) (int, strin ...
- 142_Power BI之同比预测
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 最近刚好在做一个简单同比预测的模型,预测方法很简单,就是累计同比预测,把MTD展示出来. [video widt ...
- 【Unity Shader学习笔记】Unity光照基础-漫反射光照
本代码只适用于平行光. 1.逐顶点漫反射光照 1.1漫反射光照原理 1.2代码实现 在Properties语义块中声明一个漫反射颜色属性 Properties { //漫反射参数,用于调整漫反射效果 ...