PageHelper分页插件原理

308 阅读1分钟

总结:

PageHelper首先将前端传递的参数保存到page这个对象中,接着将page的副本存放入ThreadLoacl中,这样可以保证分页的时候,参数互不影响,接着利用了mybatis提供的拦截器(PageHelper的拦截器PageInterceptor实现了和mybatis拦截器一样的interceptor接口,调用其中的intercept方法),取得ThreadLocalpage对象的值,通过反射机制将page分页信息拼接分页逻辑给mybatis要执行的SQL语句,完成分页。