使用的是:Mybatis-Plus的分页插件
https://baomidou.gitee.io/mybatis-plus-doc/#/?id=%E7%AE%80%E4%BB%8B

1、Mapper.java

List<SysUser> selectPageUserList(Page page, SysUser user);

2、serviceImpl

    public Page<SysUser> selectUserPage(SysUser user, Integer current, Integer pageSize) {
Page<SysUser> page = new Page<SysUser>(current, pageSize);// 当前页,总条数 构造 page 对象
//sql优化,OptimizeCountSql默认为true,优化,不执行select count(1)操作
//page.setOptimizeCountSql(false);
// 查询总记录数,默认是查询
// page.setSearchCount(false);
// 注意!! 分页 total 是经过插件自动 回写 到传入 page 对象
return page.setRecords(baseMapper.selectPageUserList(page, user));
}

3、controller

@RequestMapping(value = "/list", method = RequestMethod.POST)
@ResponseBody
public ModelAndView doList(SysUser su, SplitPage splitPage){ ModelAndView mav = new ModelAndView("m/user/listUser"); Page<SysUser> pageInfo = sysUserService.selectUserPage(su,splitPage.getPageNumber(),splitPage.getPageSize()); PageInfo<SysUser> pageResult = new PageInfo<SysUser>(); pageResult.setPageSize(splitPage.getPageSize());
// 返回当前页码
pageResult.setPage(pageInfo.getCurrent());
// 返回总记录数
pageResult.setRecords(pageInfo.getTotal());
// 返回总页数
pageResult.setTotal(pageInfo.getPages());
// 返回查询数据
pageResult.setRows(pageInfo.getRecords()); mav.addObject("pageInfo",pageResult); return mav;
}
@RequestMapping(value = "/userData", method = RequestMethod.POST)
@ResponseBody
public ModelAndView getData(SysUser su, SplitPage splitPage){ ModelAndView mav = new ModelAndView("m/user/user :: userData"); Page<SysUser> pageInfo = sysUserService.selectUserPage(su,splitPage.getPageNumber(),splitPage.getPageSize()); PageInfo<SysUser> pageResult = new PageInfo<SysUser>(); pageResult.setPageSize(splitPage.getPageSize());
// 返回当前页码
pageResult.setPage(pageInfo.getCurrent());
// 返回总记录数
pageResult.setRecords(pageInfo.getTotal());
// 返回总页数
pageResult.setTotal(pageInfo.getPages());
// 返回查询数据
pageResult.setRows(pageInfo.getRecords()); mav.addObject("pageInfo",pageResult); return mav;
}

4、html页面(thymeleaf)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div th:fragment="page(url,searchForm,tablelist)" class="col-xs-12">
<div class="col-xs-6">
<div class="dataTables_info" id="dynamic-table_info" role="status" aria-live="polite">
共<strong th:text="${pageInfo.records}"/>条数据
</div>
</div>
<div class="col-xs-6">
<div class="dataTables_paginate paging_simple_numbers" id="table_paginate"> <input th:hidden="true" id="pageNumber" name="pageNumber" th:value="${pageInfo.page}"/>
<!-- 处理页数小于等于7 的情况 -->
<ul th:if="${(pageInfo.total le 7)&&(pageInfo.total gt 0)}" class="pagination">
<li th:if="${pageInfo.page eq 1}" class="page-item disabled"><a class="page-link" href="#">上一页</a></li>
<li th:if="${pageInfo.page gt 1}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'-1)'" >上一页</a>
</li> <li th:each="index:${#numbers.sequence(1,pageInfo.total)}" th:classappend="${index eq pageInfo.page}?'active'" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\',\''+${index}+'\')'"
th:text="${index}"></a>
</li> <li th:if="${pageInfo.page eq pageInfo.total}" class="page-item disabled">
<a class="page-link" href="#">下一页</a>
</li>
<li th:if="${pageInfo.page lt pageInfo.total}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'+1)'">下一页</a>
</li>
</ul> <!-- 处理页数大于7 的情况 -->
<ul th:if="${pageInfo.total gt 7}" class="pagination">
<li th:if="${pageInfo.page eq 1}" class="page-item disabled">
<a class="page-link" href="#">上一页</a>
</li> <li th:if="${pageInfo.page gt 1}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'-1)'">上一页</a>
</li> <!-- 首页 -->
<li th:classappend="${pageInfo.page eq 1}?'active'" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+'1)'">1</a>
</li> <!-- 当前页面小于等于7 -->
<li th:if="${pageInfo.page le 4}" th:each="index:${#numbers.sequence(2,5)}"
th:classappend="${index eq pageInfo.page}?'active'" class="page-item">
<a href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\',\''+${index}+'\')'" class="page-link" th:text="${index}"></a>
</li> <li th:if="${pageInfo.page le 4}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+'6)'">...</a>
</li> <!-- 最后一页与当前页面之差小于等于3 -->
<li th:if="${pageInfo.total-pageInfo.page le 3}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.total}+'-5)'">...</a>
</li> <li th:if="${pageInfo.total-pageInfo.page le 3}" th:each="index:${#numbers.sequence(pageInfo.total-4,pageInfo.total-1)}"
th:classappend="${index eq pageInfo.page}?'active'" class="page-item">
<a href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\',\''+${index}+'\')'" class="page-link" th:text="${index}"></a>
</li> <!-- 最后一页与当前页面之差大于3 且当前页面大于4 -->
<li th:if="${(pageInfo.page gt 4) && (pageInfo.total-pageInfo.page gt 3)}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'-2)'">...</a>
</li> <li th:if="${(pageInfo.page gt 4) && (pageInfo.total-pageInfo.page gt 3)}" th:each="index:${#numbers.sequence(pageInfo.page-1,pageInfo.page+1)}"
th:classappend="${index eq pageInfo.page}?'active'" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\',\''+${index}+'\')'" th:text="${index}"></a>
</li> <li th:if="${(pageInfo.page gt 4) && (pageInfo.total-pageInfo.page gt 3)}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'+2)'">...</a>
</li> <!-- 尾页 -->
<li th:classappend="${pageInfo.page eq pageInfo.total}?'active'" class="page-item">
<a class="page-link"href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\',\''+${pageInfo.total}+'\')'" th:text="${pageInfo.total}"></a>
</li> <li th:if="${pageInfo.page eq pageInfo.total}" class="page-item disabled">
<a class="page-link" href="#">下一页</a>
</li> <li th:if="${pageInfo.page lt pageInfo.total}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'+1)'">下一页</a>
</li> </ul> </div>
</div>
</div>
</body>
</html>

5、js

function splitPageLink(url,searchForm,tablelist,toPage) {
$("#table_paginate select[name=pageNumber],input[name=pageNumber] ").val(toPage);
ajaxLoad(url,$.param({'pageNumber': toPage}) + '&' +$("#"+searchForm+"").serialize(),'lu_user_list'); }
function ajaxLoad(url,data,loadTable){
$.ajax({
type:"post",
url:url,
data: data,
contentType:"application/x-www-form-urlencoded; charset=UTF-8",
dataType:
"html",
async:
false,//同步
success:function (result) {
$("#"+loadTable+"").html(result);
}
}) }

Mybatis-Plus的分页插件的更多相关文章

  1. SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页

    SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页 **SpringBoot+Mybatis使用Pagehelper分页插件自动分页,非常好用,不用在自己去计算和组装了. ...

  2. Mybatis的PageHelper分页插件的PageInfo的属性参数,成员变量的解释,以及页面模板

    作者:个人微信公众号:程序猿的月光宝盒 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int si ...

  3. Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件

    前言 在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生 ...

  4. springboot如何集成mybatis的pagehelper分页插件

    mybatis提供了一个非常好用的分页插件,之前集成的时候需要配置mybatis-config.xml的方式,今天我们来看下它是如何集成springboot来更好的服务的. 只能说springboot ...

  5. 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法

    spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...

  6. Spring Boot整合tk.mybatis及pageHelper分页插件及mybatis逆向工程

    Spring Boot整合druid数据源 1)引入依赖 <dependency> <groupId>com.alibaba</groupId> <artif ...

  7. 小白的springboot之路(十五)、mybatis的PageHelper分页插件使用

    0.前言 用mybatis,那么分页必不可少,基本都是用PageHelper这个分页插件,好用方便: 1.实现 1.1.添加依赖: <!-- 3.集成 mybatis pagehelper--& ...

  8. 后端——框架——持久层框架——Mybatis——补充——pageHelper(分页)插件

    Pagehelper插件的知识点大致可以分为三个部分 搭建环境,引入jar包,配置. 使用方式,只需要记住一种即可.类似于在写SQL语句中,可以left join,也可以right join,它们实现 ...

  9. (七)mybatis批量操作,分页插件

    首先使用方式很简单: SqlSession sqlSession = sessionFactory.openSession(ExecutorType.BATCH); 批量操作核心:改变执行sql的方式 ...

  10. Mybatis学习 PageHelper分页插件

    1.Maven依赖,注意使用PageHelper时的版本必须与Mybatis版本对应 1 <!-- 添加Mybatis依赖 --> 2 <dependency> 3 <g ...

随机推荐

  1. Kattis dragonball1 Dragon Ball I(最短路)

    There is a legendary tale about Dragon Balls on Planet X: if one collects seven Dragon Balls, the Dr ...

  2. PAT Basic 1007 素数对猜想 (20) [数学问题-素数]

    题目 让我们定义 dn 为:dn = pn+1 – pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数."素数对猜想"认为"存在⽆穷多对 ...

  3. 漫谈设计模式(二):单例(Singleton)模式

    1.前言 实际业务中,大多业务类只需要一个对象就能完成所有工作,另外再创建其他对象就显得浪费内存空间了,例如web开发中的servlet,这时便要用到单例模式,就如其名一样,此模式使某个类只能生成唯一 ...

  4. 题解【[BJOI2015]树的同构】

    切了省选题+紫题,来写个题解 这题其实挺水,才120行代码 该题写了我一天(上午1.5h,晚上10min = 一天) hash,对于节点A,\[hashval[A] = \{hashval[i]\ti ...

  5. 牛客寒假算法基础集训营1B题

    链接:https://ac.nowcoder.com/acm/contest/317/B 来源:牛客网 题目描述 小a非常喜欢204204这个数字,因为′a′+′k′=204′a′+′k′=204. ...

  6. JS 特效三大系列总结

    一. offset系列 1. offset系列的5个属性 1. offsetLeft : 用于获取元素到最近的定位父盒子的左侧距离 * 计算方式: 当前元素的左边框的左侧到定位父盒子的左边框右侧 * ...

  7. python获取当前时间戳

    import time # 获取当前时间戳print(int(time.time()))

  8. 画一画BeagleboneBlack的PCB

    一直有听说“Cadence是这个星球上第一好用的EDA软件”,便想着找机会来学学.正好BeagleboneBlack是用Cadence设计的,而且是开源硬件,原理图和PCB文件可以直接在Wiki上下载 ...

  9. 常见 Web 安全攻防总结

    Web 安全的对于 Web 从业人员来说是一个非常重要的课题,所以在这里总结一下 Web 相关的安全攻防知识,希望以后不要再踩雷,也希望对看到这篇文章的同学有所帮助.今天这边文章主要的内容就是分析几种 ...

  10. Codeforces Round #559(Div.1)

    A 签到贪心题,特判了n=1或m=1的情况才发现2<=n,m<=1e5 #include<bits/stdc++.h> using namespace std; typedef ...