2019独角兽企业重金招聘Python工程师标准>>>

我们知道,在查询数据库时,如果数据库表中的数据比较多,都会使用到分页技术。Mybatis也支持分页查询,可以借助RowBounds对象,对数据分页,但是,基于RowBounds的分页是对ResultSet结果集进行分页,也就是逻辑分页,并不是物理分页。换句话说,也就是先把数据库中的数据全部查询出来,然后在进行过滤。今天小博老师先给大家介绍下RowBounds对象的 使用,下节课我们再探讨如何实现物理分页。

先来了解下RowBounds类的源码:

这个类很简单,只有offset和limit两个参数,表示从第几条开始,取多少条。

接下来看看Mybatis默认分页实现方法org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap()的源码:

对查询出的结果进行skipRows处理,skipRows代码如下:

skipRows只是根据rowBounds对象的offset参数,跳过或者滚动到具体的起始行。

再来看看shouldProcessMoreRows:

这里判断读取的结果集数量是否与rowBounds对象 的limit参数相符,如果以获取到相应数量的结果,则不再继续执行。

由此可以看出,Mybatis默认的RowBounds分页是对ResultSet的分页,执行效率不会很理想。如果要实现高效率的分页,可以通过拦截器的方式实现。下节课我们实现一个简单的分页拦截器。

转载于:https://my.oschina.net/u/2971691/blog/856564

博为峰JavaEE技术文章 ——MyBatis RowBounds分页相关推荐

  1. 博为峰JavaEE技术文章 ——MyBatis 简介(2)

    2019独角兽企业重金招聘Python工程师标准>>> 了解了Mybatis的历史以及基本的三层架构之后,小博老师继续给大家介绍Mybatis的数据处理流程. 1. MyBatis的 ...

  2. 博为峰JavaEE技术文章 ——MyBatis 注解

    2019独角兽企业重金招聘Python工程师标准>>> 前面在介绍Mybatis时,我们都是使用mapper xml文件来配置SQL语句的.Mapper xml使用起来比较方便,但是 ...

  3. 博为峰JavaEE技术文章 ——MyBatis where标签使用方法

    2019独角兽企业重金招聘Python工程师标准>>> SQL查询语句一般都会用到where条件,多个条件之间还需要使用and 或者or连接.如果手工写这样的语句,难免会出现一些错误 ...

  4. 博为峰JavaEE技术文章 ——MyBatis Provider之@SelectProvider SQL方法

    2019独角兽企业重金招聘Python工程师标准>>> 使用自定义的provider类构造SQL语句时,可以使用String字符串拼接SQL,但是我们知道这样做需要我们处理加号,引号 ...

  5. 博为峰JavaEE技术文章 —— Hibernate 指南(3)Hbm文件

    2019独角兽企业重金招聘Python工程师标准>>> 前面讲了id元素的使用事项,接着上一节,小博老师继续介绍这个案例.接下来看看generator元素的相关使用方法. 两个< ...

  6. 博为峰JavaEE技术文章 —— Hibernate域模型(2)

    2019独角兽企业重金招聘Python工程师标准>>> 前章节已经初步了解Hibernate域模型基础知识.今天小博老师继续带领大家学习域模型命名策略. 将对象模型中的名称映射到相应 ...

  7. 博为峰Java技术文章 ——JavaEE Hibernate HQL条件查询

    2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 条件查询在实际应用中比较广泛,通常使用条件查询过滤数据库返回的查询数据,因为一个表中的所有数据并不一定对用户 ...

  8. 博为峰Java技术文章 ——JavaSE Swing JPanel III

    2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 上篇文章程序实例中,建立了6个面板容器类,分别是contentPane.p1.p2.p3.p4. p5,其中 ...

  9. 博为峰Java技术文章 ——JavaSE Swing FlowLayout布局管理器I

    2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 这种布局管理器的策略也非常简单,它是按照控件加入的先后顺序从左到右排列,一行排满了,再换下一行,然后在从左到 ...

  10. 博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理

    2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 在JList类中有addListSelectionListener()方法,可以检测用户是否对JList的选 ...

最新文章

  1. 计算机专业英语2008影印版第四章翻译,计算机专业英语2008影印版选择题的翻译加答案(14页)-原创力文档...
  2. 用友u8 php,php 访问用友u8数据
  3. SSL/TLS中间人攻击
  4. docker之Dockerfile
  5. android 获取网卡mac_Java获取Linux安卓设备的mac地址方法
  6. Linux 命令之 id -- 显示用户ID和组ID
  7. PCL—关键点检测(rangeImage)低层次点云处理
  8. 百度与华为全面战略合作 人工智能手机真的要来了
  9. c/c++如何获取数组的长度
  10. LeetCode 934 最短的桥
  11. matlab绘画固定方程的曲线图
  12. bzoj1047/luogu2216 理想的正方形 (单调队列)
  13. JS脚本defer的作用
  14. StackOverflow
  15. 【翻译】优秀网站的10个技巧
  16. 重t2加权是什么意思_魔兽世界怀旧服:详解盗贼T2.5套装,别犹豫真香
  17. 南京邮电大学计算机专业学费多少,南京邮电大学学费多少
  18. Android应用 开机自启动
  19. React 语法之let和const命令
  20. 考研数学公式默写记忆PDF

热门文章

  1. mysql 分组之后统计记录条数
  2. SQL注入攻击防御深层思考
  3. 案例研究–亚马逊服务中断,数据库崩溃–我们恢复数据库且无数据损失
  4. 【Java】第6章 访问权限控制
  5. iPhone UI 元素大小
  6. 线性表的链式存储实现
  7. 此时本机的BootLoader程序坏了,也就是说grub第一阶段坏掉了,该如何修复
  8. mysql的分页存储过程,能够传出总记录数
  9. POJ 2449 Remmarguts' Date (SPFA + A星算法) - from lanshui_Yang
  10. 什么是.NET应用程序域