MyBatis中使用RowBounds对查询结果集进行分页

2019-10-16 08:21:37来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

MyBatis中使用RowBounds对查询结果集进行分页

MyBatis可以使用RowBounds逐页加载表数据。RowBounds对象可以使用offset和limit参数来构建。参数offset表示开始位置,而limit表示要取的记录的数目

映射文件:

        <select id="findAllUsers" resultType="User"> 
            select id,name,gender from t_user 
        </select> 

映射接口中:

public List<User> findAllUsers(RowBounds rowBounds);

测试方法:

@Test
public void test_findAllUsers2(){
            
            SqlSession sqlSession = null;
            try {
                sqlSession = MyBatisSqlSessionFactory.openSession();
                
                SpecialMapper mapper = sqlSession.getMapper(SpecialMapper.class);
                
                //表示从第几条数据开始
                int offset = 0;
                //连续取出几条数据
                int limit = 5; 

                RowBounds rowBounds = new RowBounds(offset, limit); 
                
                List<User> list = mapper.findAllUsers(rowBounds);
                
                list.forEach(System.out::println);
                
            } catch (Exception e) {
                e.printStackTrace();
            }
} 

注意,若规定每页5条数据,要展示第二页,使用offset=5,limit=5

但是其实Mybatis的分页是基于内存的分页(查出所有记录再按偏移量和limit取结果),在大数据量的情况下这样的分页效率会很低,一般情况下我们会使用mybaits的分页辅助工具来完成分页


原文链接:https://www.cnblogs.com/Magic-Li/p/11684717.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java异常类及处理

下一篇:浅谈分布式事务与TX-LCN