pagehelper怎么计算总数的

2025-12-17 08:46:20
推荐回答(3个)
回答1:

PageHelper.startPage会返回一个page对象,这个对象在查询结果出来后会把页数,记录总数给page对象,你用page.getPages()和getTotal()获取页数和记录总数。

PageHelper是MyBatis的分页查询的插件。

他与使用的页面无关,只要你在调用分页查询语句之前调用相应的方法,即可实现分页查询功能;如//获取第1页,20条内容PageHelper.startPage(1,20)。

扩展资料

pageHelper的原理:

pageHelper会使用ThreadLocal获取到同一线程中的变量信息,各个线程之间的Threadlocal不会相互干扰,也就是Thread1中的ThreadLocal1之后获取到Tread1中的变量的信息,不会获取到Thread2中的信息

所以在多线程环境下,各个Threadlocal之间相互隔离,可以实现,不同thread使用不同的数据源或不同的Thread中执行不同的SQL语句。

所以,PageHelper利用这一点通过拦截器获取到同一线程中的预编译好的SQL语句之后将SQL语句包装成具有分页功能的SQL语句,并将其再次赋值给下一步操作,所以实际执行的SQL语句就是有了分页功能的SQL语句。

参考资料来源:MyBatis-pagehelper

回答2:

PageHelper.startPage会返回一个page对象,这个对象在查询结果出来后会把页数,记录总数给page对象,你用page.getPages()和getTotal()获取页数和记录总数,我是这样拿到的,研究不深,作为参考

回答3:

使用PageHelper做分页查询时,在执行数据查询之前会根据查询条件执行此SELECT COUNT(0) 查询,以获取数据总数