1、手动分页

不使用任何框架,用limt分页

select xx from tab_a  limt  #{pageNo},#{pageSize}

2、RowBounds分页(不推荐)

这个是内存分页,它的原理是一次性查出所有数据,然后在内存里进行分页,占内存。

3、PageHelper分页(推荐)

Mybatis分页插件

pom依赖:

<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.1</version>
</dependency>

application.yml

# pageHelper分页配置
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true

使用:

// 第一步 开启分页,记住,这行的下面紧跟着查询语句
PageHelper.startPage(pageNum, pageSize);
// 第二步 根据实际业务sql语句查询
List<xxx> list = xx.selectxx(xx);
// 第三步 通过PageInfo对象可以获取分页后的信息 常用的如下:
PageInfo<xx> pageInfo = new PageInfo<>(tbCpsGoodList);
List<xxx> listResults = pageInfo.getResult(); // 分页得到的list
long total = pageInfo.getTotal(); // 总数

4、MybatisPlus自带分页(推荐)

MybatisPlus是Mybatis的增加版,只对Mybatis做增强,不影响原来功能的使用。它还贴心的自带了分页功能。无需额外引入依赖。

使用:

LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
Page<User> page = new Page<>(1, 2);
IPage<User> pageResult = userMapper.selectPage(page,lambdaQueryWrapper);
result.put("total", pageResult.getTotal());
result.put("list", pageResult.getRecords());

总结

1、分页只是个小功能,别再纠结了,也别研究了,其实分页插件的原理,也就是帮你做了limit 1,2这些破事。

2、能用MybatisPlus尽量用,它解决了版本不匹配的问题,Mybatis的pageHelper还有版本问题,高版本的springboot未必支持低版本的pageHelper依赖。

Java实现分页的方式有哪些?的更多相关文章

  1. Java list 分页(多种方式)

    方式一:public static  void fenye(List list,int pagesize){    int totalcount=list.size();    int pagecou ...

  2. [原创] 如何用Eclispe调试java -jar xxx.jar 方式执行的jar包

    有时候,我们经常会需要调试 java -jar xxx.jar方式运行的代码,而不是必须在Eclipse中用Debug或者Run的方式运行.比如我们拿到的SourceCode不完整.Java提供了一种 ...

  3. sql语句分页多种方式ROW_NUMBER()OVER

    sql语句分页多种方式ROW_NUMBER()OVER 摘自: http://www.cnblogs.com/CodingArt/articles/1692468.html 方式一 select to ...

  4. Java 动态分页类

     动态分页类: Cls_page.java package pagination; public class Cls_page { private int nums;// 总条目数 private i ...

  5. Java 启动线程的方式

    面试题:JAVA启动线程的方式有哪些? 1.继承Thread [java] view plaincopy public class java_thread extends Thread{ public ...

  6. 从url下载图片--java与python实现方式比较

    从url下载图片--java与python实现方式比较 博客分类: 技术笔记小点滴 javapython图片下载  一.java的实现方式 首先读取图片 //方式一:直接根据url读取图片 priva ...

  7. 浅谈 Java Xml 底层解析方式

    XML 使用DTD(document type definition)文档类型来标记数据和定义数据,格式统一且跨平台和语言,已成为业界公认的标准. 目前 XML 描述数据龙头老大的地位渐渐受到 Jso ...

  8. java如何调用接口方式二

    java如何调用接口 在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适,所以,问题来了,java如何调用接口?很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对 ...

  9. java如何调用接口方式一

    java如何调用接口 其实对于java调用接口进行获取对方服务器的数据在开发中特别常见,然而一些常用的基础的知识总是掌握不牢,让人容易忘记,写下来闲的时候看看,比回想总会好一些. 总体而言,一些东西知 ...

  10. POST不同提交方式对应的Content-Type,及java服务器接收参数方式

    POST不同提交方式对应的Content-Type,及java服务器接收参数方式 注:本博客参考了网上的文章结合自己工作总结后所写,主要用于记录自己工作所得,如有错误请批评指正. 简介: Conten ...

随机推荐

  1. ansible系列(21)--ansible的变量注册Register

    1. 变量注册Register register 关键字可以将某个 task 任务结果存储至变量中,最后使用 debug模块 输出变量内容,可以用于后续排障: 示例一:register的基本使用: # ...

  2. LVS负载均衡(5)-- LVS持久连接

    持久连接: 持久连接用于实现无论使用任何调度算法,在一段时间内(默认300s ),能够实现将来自同一个地址的请求始终发往同一个RS. 语法格式: ipvsadm -A|E -t|u|f service ...

  3. ExpiringMap学习总结

    一.ExpiringMap简介 ExpiringMap是一个轻量级的Java缓存方式 针对一些小体量的项目,存储的数据量也不是很大(如校验码)的情况下,使用Redis会增加系统的复杂性和维护难度.它的 ...

  4. UE4/5 应用角色根运动的问题

    总的来说UE还是有点绕,网上提到的也不是很清晰,记录下. 具体可以下载UE官方示例ContentExample并进入Animation Level进行查看. 在Level中能看到根运动的必要步骤: 1 ...

  5. 5GC 关键技术之 MEC 边缘计算

    目录 文章目录 目录 前文列表 MEC 边缘计算 ETSI MEC 标准化参考模型 MEC 架构设计原则 MEC 分层架构 MEC 系统架构 MEC 软件架构 MEC in NFV 融合架构 ETSI ...

  6. 教你如何搞定springboot集成kafka

    本文分享自华为云社区<手拉手入门springboot+kafka>,作者:QGS. 安装kafka 启动Kafka本地环境需Java 8+以上 Kafka是一种高吞吐量的分布式发布订阅消息 ...

  7. AIRIOT物联网低代码平台如何配置OPC DA驱动?

    AIRIOT物联网低代码平台提供了丰富的驱动,兼容了市面上95%以上的传感器.控制器及数据采集设备等,并且在持续增加中,能够快速.便捷地实现数据采集与控制功能. AIRIOT物联网低代码平台如何配置O ...

  8. 基于 Go 的 Web 框架调研

    基于 Go 的 Web 框架调研 概述 调研总体目标 找出适合企业应用后台研发的 Go Web 框架 调研考察方向 项目完善程度: 功能完善: 路由, 模板, 插件/扩展, ORM, 命令行工具, 日 ...

  9. iOS 后台录音Tweak实现参考--stackoverflow

    up vote9down voteaccepted +50 "Audio Recorder" is indeed a very simple tweak. The author t ...

  10. vue带有参数的路由跳转 动态路由

    先定义好路由在router文件下面创建一个新的文件夹里面写上自己定义的路由 export default {   path: '/detail/:id',   component: () =>  ...