0.前言
在使用mybatis开发的过程中,经常会遇到分页的问题,而这个时候,pageHelper的出现省去了很多我们分页中遇到的麻烦。不过遇到一个新东西,我们在使用中经常会遇到很多问题,我在这里总结一下。
1.分页
PageHelper是一个物理分页插件,它使用ThreadLocal获取到同一线程中的变量信息,各个线程之间的Threadlocal不会相互干扰,所以在多线程环境下,各个Threadlocal之间相互隔离,可以实现不同thread使用不同的数据源或不同的Thread中执行不同的SQL语句。所以PageHelper利用这一点,通过拦截器获取到同一线程中的预编译好的SQL语句之后将SQL语句包装成具有分页功能的SQL语句,并将其再次赋值给下一步操作,所以实际执行的SQL语句就是有了分页功能的SQL语句(来源:https://blog.csdn.net/jaryle/article/details/52315565)。
如何使用pageHelper进行分页呢,贴出一段模版代码:
//pege:当前页码,从1开始(注意和limit的区别)
//rows:每页显示个数
if(page == null || page <= 0) page = 1;
if(rows == null || rows <= 0) rows = 30;
//开始分页
PageHelper.startPage(pag