public ServerResponse<PageInfo> getProductList(int pageNum,int pageSize){
//startPage--start
//填充自己的sql查询逻辑
PageHelper.startPage(pageNum,pageSize);
List<Product> productList = productMapper.selectList();
总结:
1、PageHelper首先将前端传递的参数保存到page这个对象中
2、接着将page的副本存放入ThreadLoacl中,ThreadLocal很多地方叫做线程本地变量,为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。这样可以保证分页的时候,参数互不影响
3、PageHelper实现了mybatis提供的拦截器interceptor接口,调用其中的intercept方法,取得ThreadLocal的值
PageHelper在我们执行SQL语句之前动态的将SQL语句拼接了分页的语句,从而实现了从数据库中分页获取的过程。