欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-23 08:13:28
MyBatis可以使用RowBounds逐页加载表数据。RowBounds对象可以使用offset和limit参数来构建。参数offset表示开始位置,而limit表示要取的记录的数目 映射文件: 映射接口中: 测试方法: 注意,若规定每页5条数据,要展示第二页,使用offset=5,limit=5 ......

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的分页辅助工具来完成分页