RowBounds
软分页
-
Mybatis可以通过传递RowBounds对象,来进行数据库数据的分页操作,然而遗憾的是,该分页操作是对ResultSet结果集进行分页,也就是人们常说的逻辑分页,而非物理分页。效率低下,不建议使用。
-
RowBounds实现分页(本质,在sql层面将所有数据查出来,最后在Java层面利用RowBounds对象,实现分页)
参数
- offset属性是偏移量,即从第几行开始读取记录,起始位是0;
limit是限制条数,如果要取第一条数据应该是"select * from student limit 0,1";
另外从源码也能看出来offset、limit最大值为2147483647,Integer.MAX_VALUE=2147483647;
接口
//利用limit实现分页(基于java层面实现)
List<User> getUserByRowBounds();
mapper.xml
<!--//分页2-->
<select id="getUserByRowBounds" resultMap="userMap">
select * from mybatis.user;
</select>
测试
@Test
public void limitTest2(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//RowBounds实现分页
RowBounds rowBounds = new RowBounds(1,2);
List<Object> list = sqlSession.selectList("com.king.dao.UserMapper.getUserByRowBounds", null, rowBounds);
for (Object user : list) {
System.out.println(user);
}
sqlSession.close();
}