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 ...
随机推荐
- nim 1. 安装、IDE、HelloWorld
2015年,某大神写过nim的教程,请参阅: Nim教程[一] - liulun - 博客园 (cnblogs.com) 七年过去了, nim应该更成熟了. 1.安装 下载页面:Windows ins ...
- C# 实现Ping远程主机功能
C#实现Ping远程主机功能. 1.引用nuget包 Wesky.Net.OpenTools OpenTools是一个用于提高开发效率的开源工具库.该项目为个人开源项目,采用MIT开源协议,永不更改协 ...
- 一文搞懂RESTful开发
REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格 当我们想表示一个网络资源的时候,可以使用两种方式: 传统风格资源描述形式 http: ...
- kubernets之了解Qos等级
一 Qos的种类 BestEffort(优先级最低) Burstable(中等优先级) Guaranteed(最高优先级) 二 Qos的作用 众所周知,节点上面的limits允许超卖,当节点上面的 ...
- Istio(十二):Istio问题排查
目录 一.模块概览 二.Envoy基础 2.1 Envoy 基础 三.Envoy示例 四.调试备忘录 4.1 配置 4.2 运行时 4.3 检查 Envoy 日志 4.4 配置 istiod 日志 一 ...
- Spring6 对 集成MyBatis 开发运用(附有详细的操作步骤)
1. Spring6 对 集成MyBatis 开发运用(附有详细的操作步骤) @ 目录 1. Spring6 对 集成MyBatis 开发运用(附有详细的操作步骤) 每博一文案 2. 大概的实现步骤概 ...
- Mysql 存储引擎的区别以及索引查询失效的情况
存储引擎:就是指表在计算机上的存储方式.可以通过 SHOW ENGINES; 命令查询支持的存储引擎. alter table test engine= innodb/memory/myisam/ar ...
- latex图片格式问题解决(viso转PDF转eps)
latex图片格式问题解决(viso->PDF->eps) 1.viso绘图 如何让界面自动适应图的大小? 设计->大小->适应绘图 如何将VISIO图转换为PDF? 文件-& ...
- iOS使用SignalR客户端代码典范-桥接web SignalR 客户端库
一.SignalR介绍 SignalR是微软基于.Net提供的一个开源实时Web RPC库,可以用在web实时通信的需求上面,比如聊天,web数据更新 SignalR的接口使用十分简单 由于最近的一个 ...
- Web 网页性能及性能优化
Web 网页性能及性能优化 一.Web 性能 Web 性能是 Web 开发的一个重要方面,侧重于网页加载速度以及对用户输入的响应速度 通过优化网站来改善性能,可以在为用户提供更好的体验 网页性能既广泛 ...