1、借助数组进行分页
先把数据全部插叙出来,然后再通过内存进行分页。
比如通过list的截取:list.subList(offset, limit);
或者基于Jdk8的分页:stream().skip(offset).limit(limit)实现分页
2、Limit分页
通过手动编写sql进行分页
3、PageHelper
分页原理
1、首先是通过spring.factories加载配置类PageHelperAutoConfiguration,配置类里
面会往拿到所有的DefaultSqlSessionFactory,然后挨个往里面添加拦截器, 为什么会拿所有的?因为一个项
目中可能会有多个数据源。
2、在执行查询的时候,会先调用pageHelper.startpage代码来吧分页参数存到ThreadLocal里面去。
3、在执行sql操作的时候,被上面添加的【拦截器拦截】,进到拦截器里面,在拦截里面基于先进行一次cout查询,
count是为了判断是否要进行分页,因为count小于0的时候,就没有必要执行sql了,最后执行步骤4
4、最后在通过CachingExecutor执行quer操作。其实就是拦截将sql参数改一下,然后再走到CachingExecutor,里面会有两级缓存。