【Mybatis】mybatis如何实现分页
【Mybatis】mybatis如何实现分页
mysql分页功能原理
实现分页必要条件
- 必须知道某一页从哪里开始到哪里结束
- 必须知道页面的大小,也就是指定每页要显示多少条数据量
mysql分页的过程
注意:mysql的计数是从0开始的,也就是说第一条数据对应的下标应该为0
- 假设我们现在需要一页显示10条数据,
- 那么第0页的10条数据的编号就是 0 1 2 3 4 5 6 7 8 9
- 那么第1页的数据的编号是10 11 12 13 14 15 16 17 18 19
- 那么第2页的数据编号就是20 21 22 23 24 25 26 27 28 29
- …
- 那么第n页的数据编号就是10*n … (n+1)*10-1
可以很明显的看到,第n页的第一条数据的编号就是 n*页面大小
mysql的limit语法
limit 语法
limit 开始 多少条(n, m)
mysql分页的实现主要依赖于limit语法
mysql的分页实现
其实也就是
select * from xxx_table limit 页数*页面大小 页面大小
记录的总条数(total)
select count(1) from xxx_table;
页面大小(pageSize)就直接接收用户所发送的pageSize
总页数(totalPages)
totalPage的计算 1. 当 total/pageSize 的余数等于0时,总页数(totalPage)就是total/pageSize 2. 当 total/pageSize 无法整除,余数不等于0时,总页数就是total/pageSize + 1
以上。
mybatis 实现分页
1. Dao层
/*
* 分页查询
* */
public List<JotterArticle> selectByPage(Map<String,Object> params);/*
* 查询总条数
* */
public int total();
2.Dao层对应的.xml文件实现
<!--分页查询-->
<select id="selectByPage" resultType="JotterArticle">select *from jotter_articlelimit #{pageNum},#{pageSize}
</select><!--查询总条数-->
<select id="total" resultType="Integer">select count(1)from jotter_article
</select>
3. Service层
Service接口
/** 分页查询* */
public PageResult selectByPage(int pageNum,int PageSize);
4.Service实现类
@Override
public PageResult selectByPage(int pageNum, int pageSize) {Map<String,Object> params = new HashMap<>();// 将参数传递进去params.put("pageNum",(pageNum-1)*pageSize);params.put("pageSize",pageSize);// 调用Dao层的selectByPage方法进行查询List<JotterArticle> jotterArticleList = jotterArticleMapper.selectByPage(params);// PageResult类就是为了统一封装数据的一个类PageResult pageResult = new PageResult();pageResult.setPageNum(pageNum);pageResult.setPageSize(pageSize);pageResult.setContent(jotterArticleList);pageResult.setTotal(jotterArticleMapper.total());return pageResult;
}
5. Controller层
@CrossOrigin
@GetMapping("/api/article/{pageNum}/{pageSize}")
public PageResult getPageJotterArticle(@PathVariable("pageSize") int pageSize, @PathVariable("pageNum") int pageNum){return jotterArticleService.selectByPage(pageNum,pageSize);
}
【Mybatis】mybatis如何实现分页相关推荐
- rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能
Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...
- spring boot整合mybatis+通用mapper+pagehelper分页插件
spring boot整合mybatis+通用mapper+pagehelper分页插件 pom依赖 <?xml version="1.0" encoding="U ...
- SpringBoot2.0 基础案例(10):整合Mybatis框架,集成分页助手插件
一.Mybatis框架 1.mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获 ...
- Springboot集成mybatis通用Mapper与分页插件PageHelper
Springboot集成mybatis通用Mapper与分页插件PageHelper 插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 ...
- Spring Boot mybatis HashMap +layui 通用分页
背景: mybatis 常用数据查询的方法都是先建实体类,再建Mapper,最后写Service,如果只是单纯的去查询数据显示,这样操作太麻烦.本文就以mybatis +layui创建通用分页类,简化 ...
- MyBatis使用PageHelper排序分页
文章目录 MyBatis使用PageHelper排序分页 前言 排序分页 使用PageHelper排序分页 添加PageHelper Spring Boot依赖 新增一个列表查询的方法 使用PageH ...
- 关于mybatis的逆向工程中分页配置
关于mybatis的逆向工程中分页配置 因为在使用PageHelper插件的时候出现了异常的问题,所以考虑在数据库查询的时候直接进行分页操作,也就是在配置中添加limit,首先把我遇到的分页问题描述一 ...
- SpringBoot整合mybatis+mybatis分页插件
第一步:相关依赖 <!--web,servlet引入--> <dependency><groupId>org.springframework.boot</gr ...
- Mybatis 是如何进行分页的?分页插件的原理是什么?
Mybatis 是如何进行分页的?分页插件的原理是什么? Mybatis 使用 RowBounds 对象进行分页,它是针对 ResultSet 结果集执行的内存分页,而非物理分页.可以在 sql 内直 ...
- mybatis动态查询(分页排序搜索)+分解关联查询+Logback 日志配置(打印sql到控制台)+mybatis新增记录后返回自增的id。批量=11/2~11/20
一.mybatis动态查询(分页排序搜索) mybatis框架分页实现,有几种方式,最简单的就是利用原生的sql关键字limit来实现,还有一种就是利用interceptor来拼接sql,实现和lim ...
最新文章
- hive编程指南电子版_第三篇|Spark SQL编程指南
- OpenVINO 部署 YOLOv5 转换IR文件
- Java:POI方式实现Word转html/htm
- TP查看已部署的TP框架的版本
- praying,blessing,wishing
- Gartner最新发布:影响2022年基础设施和运营重大趋势
- l298n电机哪一端为正_汽车维修要知道的几个答案,交流发电机、调节器有什么功用?...
- STP:生成树协议解决网络冗余问题
- php显示地址栏携带的错误信息_php-fpm搭建及加固
- FindWindowEx的应用
- 【GCN】2021年,我终于决定入门GCN
- [51单片机] 串口通讯 简单通信
- java list加入listview_将卡添加到ListView
- 关于html的英文参考文献,英文参考文献标准格式
- android使用谷歌插件下载图片,Image Downloader:批量图片下载
- Html5网页录音,js录音mp3
- 为每天节省两小时-华芸AS4004T万兆NAS搭建测试
- 苏世民的54条人生成功经验
- EARTH DATA网站注册走过的坑
- 根据中文名字首字母进行分组