有趣的MyBatis——分页参数RowBounds

以前用MyBatis分页都是通过传递参数给SQL,没想到还有更好的方法,那就是使用MyBatis内置的专门处理分页的RowBounds类。

RowBounds源码

/**
 *    Copyright 2009-2017 the original author or authors.
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */
package org.apache.ibatis.session;

/**
 * @author Clinton Begin
 */
public class RowBounds {

  public static final int NO_ROW_OFFSET = 0;
  public static final int NO_ROW_LIMIT = Integer.MAX_VALUE;
  public static final RowBounds DEFAULT = new RowBounds();

  private final int offset;
  private final int limit;

  public RowBounds() {
    this.offset = NO_ROW_OFFSET;
    this.limit = NO_ROW_LIMIT;
  }

  public RowBounds(int offset, int limit) {
    this.offset = offset;
    this.limit = limit;
  }

  public int getOffset() {
    return offset;
  }

  public int getLimit() {
    return limit;
  }

}

offset属性是偏移量,即从第几行开始读取记录,起始位是0;limit是限制条数,如果要取第一条数据应该是"select * from student limit 0,1";另外从源码也能看出来offset、limit最大值为2147483647,Integer.MAX_VALUE=2147483647;

该类使用起来极为方便,先给接口增加一个RowBounds参数

211027_dqGN_3488884.png

然后配置普通的SQL,不要奇怪,就是这么简单!

211134_SM45_3488884.png

MyBatis会自动识别RowBounds,并根据你传递的RowBounds参数进行分页

211632_5an2_3488884.png

如下图,我查到了第二条数据

211604_Bb98_3488884.png

怎么样?是不是用起来很爽?但是要注意的是她只能运用于一些小数据量的查询,但是我也没测试具体的上线,对于大数据量的分页查询建议使用分页插件处理,所以我完成MyBatis的初步学习后会学一个分页插件~

就这样,继续fighting!~

转载于:https://my.oschina.net/codelx/blog/1591638

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值