分页参数 RowBounds
mybatis不仅支持分页,它还内置一个专门处理分页的类 —— RowBounds源码。
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 int offset;
private 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属性指的是偏移量,即从第几行开始读取记录。limit是限制条数,也就是每次读取多少条记录。
使用它的方法十分简单,就是在原有的接口上新增这个分页参数。
public List<Role> findRolesByMap(@Param("param1")RoleParam1 param1,@Param("param2")RoleParam2 param2,RowBounds rowBounds);
在我们的映射文件中不需要做任何修改。直接给出测试代码。
sqlSession = SqlSessionFactoryUtils.openSession();
RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
RoleParam1 param1 = new RoleParam1();
RoleParam2 param2 = new RoleParam2();
param1.setNote("1");
param2.setRoleName("1");
RowBounds rowBounds = new RowBounds(0,2);
List<Role> role = roleMapper.findRolesByMap(param1,param2,rowBounds);