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