mybatis RowBounds

1.RowBounds是mybatis提供的一个内存分页/逻辑分页的工具;

2.逻辑分页和物理分页

  • 逻辑分页:一次性从库里捞出所有数据,在内存中进行分页,只有当重新请求第一页时,所有数据才会进行一次更新;(目前测试出来是这样,不清楚是否有机制会刷新所有的查询数据)
  • 物理分页:直接在sql查询的时候进行limit,获取仅需要的部分数据,实时查询最新的数据

3.RowBounds解决的问题,以及本身存在的问题:

  • 物理分页实时查询最新的数据导致当数据更新频率较高时,出现数据重复或者数据丢失的问题,如果此时选择逻辑分页,则不会出现上述问题,但是只有返回第一页进行刷新时才能拿到最新的数据
  • 逻辑分页,当一次从数据库查询的数据量较大的情况下,十分影响性能,仅针对单次查询的总数据量较小的时候使用

4.使用:

只需要在接口上加上RowBounds参数即可:有两个参数:offset和limit

定义:List<A> testLimit(RowBounds rowBounds); 
使用:testMapper.testLimit(new RowBounds(0, 10)) 

版权声明:本文为u014088450原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。