RowBounds实现分页
文章目录
- RowBounds原理
- RowBounds使用
- 1、接口
- 2、mapper.xml
- 3、测试
- RowBounds大坑
RowBounds原理
- Mybatis可以通过传递RowBounds对象,来进行数据库数据的分页操作,然而遗憾的是,该分页操作是对ResultSet结果集进行分页,也就是人们常说的逻辑分页,而非物理分页(物理分页当然就是我们在sql语句中指定limit和offset值)。
- 不再使用SQL实现分页
RowBounds使用
1、接口
List<Map> getUserByRowBounds(Map<String,Integer> map);
2、mapper.xml
<!--分页--><select id="getUserByRowBounds" parameterType="map" resultType="map" >select *from mybatis01.user ;</select>
3、测试
@Testpublic void getUserByRowBounds(){SqlSession sqlSession = MybatisUtil.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);//RowBounds实现RowBounds rowBounds = new RowBounds(1,2);//通过java代码层面实现分页List<Map> userList = sqlSession.selectList("com.jin.mapper.UserMapper.getUserByRowBounds", null, rowBounds);for (Map map1 : userList) {System.out.println(map1);}sqlSession.close();}
RowBounds大坑
RowBounds是将所有符合条件的数据全都查询到内存中,然后在内存中对数据进行分页
如我们查询user表中id>0的数据,然后分页查询sql如下:
select * from user where id >0 limit 3,10
但使用RowBounds后,会将id>0的所有数据都加载到内存中,然后跳过offset=3条数据,截取10条数据出来,若id>0的数据有100万,则100w数据都会被加载到内存中,从而造成内存OOM
。
所以当数据量非常大时,一定要慎用RowBounds类。切记!切记
!
RowBounds实现分页相关推荐
- rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能
Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...
- Mybatis-plus之RowBounds实现分页查询
物理分页和逻辑分页 物理分页:直接从数据库中拿出我们需要的数据,例如在Mysql中使用limit. 逻辑分页:从数据库中拿出所有符合要求的数据,然后再从这些数据中拿到我们需要的分页数据. 优缺点 物理 ...
- MyBatis之RowBounds实现分页查询
使用RowBounds实现分页查询很简单. MyBatis的分页是基于内存的分页,即查出来所有记录,再按起始位置和页面容量取出结果. Sql映射: <!-- RowBounds实现分页 --&g ...
- springboot+mybatis使用RowBounds实现分页
一.目录结构 其中config中的SwaggerConfig可以帮助测试,有没有均可. 二.pom.xml文件导入相关依赖,userMapping配置与数据库相关代码 pom.xml: <?xm ...
- Mybatis的两种分页方式:RowBounds和PageHelper
原理:拦截器. RowBounds 在mapper.java中的方法中传入RowBounds对象. RowBounds rowBounds = new RowBounds(offset, page.g ...
- RowBounds分页原理、RowBounds的坑
目录 背景说明 一:RowBounds分页原理 二:RowBounds的使用 三:RowBounds的坑 背景说明 项目中经常会使用分页查询,有次使用了RowBounds进行分页,因为很多场景或网上也 ...
- Mybatis分页之RowBounds
Mybatis可以使用RowBounds进行分页 dao层 sql的xml文件,因为是java层面的分页,所以sql不需要分页 单元测试 因为参数是第几个开始,这样很不友好,我们一般情况分页是第几页开 ...
- Mybatis RowBounds 分页原理
在 mybatis 中,使用 RowBounds 进行分页,非常方便,不需要在 sql 语句中写 limit,即可完成分页功能.但是由于它是在 sql 查询出所有结果的基础上截取数据的,所以在数据量大 ...
- limit实现分页以及RowBounds分页
limit分页在这之前学习servlet就实现过 select * from table_name limit startIndex,pagesize 再由简易的算法实现 每次点击下一页来更改page ...
最新文章
- C语言常用排序方法大全
- 02-vue过滤器和键盘修饰符
- VMWare虚拟机转换成KVM
- 前端(jQuery UI)(2)-- jQuery UI interactions
- leetcode771. 宝石与石头
- Socket编程实践(3) 多连接服务器实现与简单P2P聊天程序例程
- Echarts数据可视化polar极坐标系,开发全解+完美注释
- 再次联手法国力克,雅戈尔打造中国服装“智造”典范
- 【openv450-samples】像素点聚类EM 图像聚类目标检测
- Less入门以及一些前端面试题
- 追寻ARM的起源-Acorn电脑简史及FPGA实现
- 腾讯云技术分享:MySQL AHI 实现解析
- -1073740791 (0xC0000409)错误,附加内容:qt布局、页面跳转
- 2003年新版CCNP考试大纲---CITV5.0(转)
- 常用的几个软电话客户端配置
- ZZULIOJ: 1187: 棒棒糖(结构体专题)
- border之border-style用法
- 蓝色经典钢琴-Cinesamples Piano In Blue v2.3b Kontakt
- Java中七大垃圾回收器
- 晶体管单管放大电路的三种基本接法详解
热门文章
- 关于如何保证SSH不断开或任务续连
- EOS原力孤矢:站在EOS肩膀上,看齐BTC
- 国税局计算机专业知识考哪些,国税系统计算机专业的考试大纲?????~~~~~...
- FX5U FX5-40SSC-G简单运动控制模块设置
- springboot使用swagger2时,访问http://localhost:8080/swagger-ui.html页面404,无法访问
- Python鸭子类型和多态
- 深度学习梯度下降优化算法(AdaGrad、RMSProp、AdaDelta、Adam)(MXNet)
- CSS 强制不换行,溢出隐藏显示省略号
- 使用后台程序的第一个程序hello word
- 使用JWT结构化令牌