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. FTP主动模式和被动模式(2)

    防火墙对FTP的影响 ASPF 多通道协议 应用层程序有些使用的是单通道协议,有些使用的是多通道协议. 单通道协议 例如http协议,整个协议交互过程中,服务端和客户端只建立一个连接,并且服务端固定使 ...

  2. OpenStack 的 SR-IOV 虚拟机热迁移

    目录 文章目录 目录 前言列表 前言 SR-IOV Pass-through 虚拟机热迁移的问题 基于 macvtap 层的 SR-IOV 虚拟机热迁移 Workaround SR-IOV Pass- ...

  3. 全网首一份!你最需要的PPTP MS-CHAP V2 挑战响应编程模拟计算教程!代码基于RFC2759,附全部源码!

    本文基于网络密码课上的实验 本来想水一水就过去,代码就网上找找,不行就GPT写,但是!一份都找不到,找到的代码都是跑不了的,总会是就是乱七八糟.所以准备认真的写一份. 代码编译成功的前提是要预先装好o ...

  4. EL表达式与JSTL简单入门

    更多博文请关注:听到微笑的博客 EL概述 EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写. 简单来说EL表达式 ...

  5. StackExchange.Redis跑起来,为什么这么溜?

    StackExchange.Redis 是一个高性能的 Redis 客户端库,主要用于 .NET 环境下与 Redis 服务器进行通信,大名鼎鼎的stackoverflow 网站就使用它.它使用异步编 ...

  6. CSS——鼠标样式

    在浏览网页的过程中,当我们将鼠标移动到一些元素上时,鼠标的样式会发生相应的改变,例如当鼠标指向文本时,鼠标的样式会变成类似大写字母I的样子:当鼠标指向链接时,鼠标会变成一个小手的形状等. 除了这些默认 ...

  7. 【阿里天池云-龙珠计划】薄书的机器学习笔记——K近邻(k-nearest neighbors)初探Task02

    [阿里天池云-龙珠计划]薄书的机器学习笔记--K近邻(k-nearest neighbors)初探Task02 [给各位看官请安] 大家一起来集齐七龙珠召唤神龙吧!!! 学习地址:AI训练营机器学习- ...

  8. Yii AR事务操作

    Yii Ar事务操作,示例代码如下: $model=Post::model(); $transaction=$model->dbConnection->beginTransaction() ...

  9. 从xib初始化的UIView如何继承?

    一.如何从xib自定义一个CustomView 1)首先创建继承自UIView的子类CustomView 2)创建名字为CustomView的View的Interface文件 3)在xib的资源文件中 ...

  10. uniapp 返回顶部

    <template> <view> <view class="btn" @tap="toTop" :style="{'d ...