Java实现分页的方式有哪些?
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实现分页的方式有哪些?的更多相关文章
- Java list 分页(多种方式)
方式一:public static void fenye(List list,int pagesize){ int totalcount=list.size(); int pagecou ...
- [原创] 如何用Eclispe调试java -jar xxx.jar 方式执行的jar包
有时候,我们经常会需要调试 java -jar xxx.jar方式运行的代码,而不是必须在Eclipse中用Debug或者Run的方式运行.比如我们拿到的SourceCode不完整.Java提供了一种 ...
- sql语句分页多种方式ROW_NUMBER()OVER
sql语句分页多种方式ROW_NUMBER()OVER 摘自: http://www.cnblogs.com/CodingArt/articles/1692468.html 方式一 select to ...
- Java 动态分页类
动态分页类: Cls_page.java package pagination; public class Cls_page { private int nums;// 总条目数 private i ...
- Java 启动线程的方式
面试题:JAVA启动线程的方式有哪些? 1.继承Thread [java] view plaincopy public class java_thread extends Thread{ public ...
- 从url下载图片--java与python实现方式比较
从url下载图片--java与python实现方式比较 博客分类: 技术笔记小点滴 javapython图片下载 一.java的实现方式 首先读取图片 //方式一:直接根据url读取图片 priva ...
- 浅谈 Java Xml 底层解析方式
XML 使用DTD(document type definition)文档类型来标记数据和定义数据,格式统一且跨平台和语言,已成为业界公认的标准. 目前 XML 描述数据龙头老大的地位渐渐受到 Jso ...
- java如何调用接口方式二
java如何调用接口 在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适,所以,问题来了,java如何调用接口?很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对 ...
- java如何调用接口方式一
java如何调用接口 其实对于java调用接口进行获取对方服务器的数据在开发中特别常见,然而一些常用的基础的知识总是掌握不牢,让人容易忘记,写下来闲的时候看看,比回想总会好一些. 总体而言,一些东西知 ...
- POST不同提交方式对应的Content-Type,及java服务器接收参数方式
POST不同提交方式对应的Content-Type,及java服务器接收参数方式 注:本博客参考了网上的文章结合自己工作总结后所写,主要用于记录自己工作所得,如有错误请批评指正. 简介: Conten ...
随机推荐
- centos7桌面版安装百度网盘
百度网盘官网下载Linux版本的软件 CentOS7的软件包格式为rpm # 安装依赖 yum -y install libXScrnSaver yum -y install libstdc++.so ...
- GROUP BY clause and contains nonaggregated 报错处理
1055 - Expression #16 of SELECT list is not in GROUP BY clause and contains nonaggregated column 报错处 ...
- spring boot 在windows下的 批文件部署
目录结构如下: install.bat @echo off SET JAVA_HOME="C:\Program Files\Java\jdk1.8.0_211\bin" copy ...
- 源码分析——MyBatis与Spring整合后如何保证SqlSession线程安全
在MyBatis架构中SqlSession是提供给外层调用的顶层接口,它是MyBatis对外暴露的最重要的接口,用户通过该接口即可完成数据库的全部操作.在上文中我们明白了我们常用的Mybatis动态代 ...
- k8s 1.24 service account 版本以后怎么获取永不过期token?
问题产生背景: 一个服务操作多个k8s集群, 这个时候就会出现授权问题.k8s 1.24版本之前sa账号产生的token在secret中是永久不过期的.在1.24版本以后secret将不再保留toke ...
- Native如何使用Tunnel Mode
mAudioSessionId = AudioSystem::newAudioUniqueId(AUDIO_UNIQUE_ID_USE_SESSION); mHwSync = AudioSystem: ...
- 使用Harbor作为Rainbond默认容器镜像仓库,扩展Rainbond镜像管理能力
Rainbond是一体化的云原生应用管理平台,它提供"以应用为中心"的抽象,使用者不需要学习K8s和容器,平台将K8s和容器封装在内部,这种封装方式能极大提高使用的易用性和安装的便 ...
- 企业级nginx内核优化篇
1. cpu核心配置 方法1: worker_processes auto; 自动调用[推荐] 方法2: worker_processes 4; 手工配置 检查CPU核心:yum install nu ...
- 修改linux默认启动界面——从命令行模式转换为图形化模式
从命令行模式转换为图形化模式 首先需要安装对应的图形化安装包 yum groupinstall "GNOME Desktop" "Graphical Administra ...
- xv6 内核空间共享
首发公号:Rand_cs 共享内核空间 我们常说,每个进程都有自己的虚拟地址空间,但其中内核部分是共享的. 这就有个问题,如何共享的? 系统启动时创建了一张内核页表,里面记录着内核地址空间与物理地址空 ...