PageHelper 实现原理

来源:互联网 发布:python idle无法打开 编辑:程序博客网 时间:2024/06/01 10:50

1.定义一个 分页的类

/** *类描述:模拟 page 分页 * *@Author:ztd *@date:2016年8月4日 *@Version:1.1.0 */public class Page {    private int startPage;    private int pageSize;    public int getStartPage() {        return startPage;    }    public void setStartPage(int startPage) {        this.startPage = startPage;    }    public int getPageSize() {        return pageSize;    }    public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }    public Page(int startPage, int pageSize) {        super();        this.startPage = startPage;        this.pageSize = pageSize;    }    public Page() {        super();        // TODO Auto-generated constructor stub    }}

2.模拟 PageHelper

/** *类描述:模拟 PageHelper * *@Author:ztd *@date:2016年8月4日 *@Version:1.1.0 */public class PageHelper {    /**     * 其实 PageHelper 的实现靠的就是这个变量,     * 它的里面可以存储的东西,在真正需要计算分页的时候,可以随时取出来     */    private static final ThreadLocal<Page> LOCAL_PAGE = new ThreadLocal<Page>();    public static void startPage(int startPage, int pageSize) {        Page page  = new Page();        page.setStartPage(startPage);        page.setPageSize(pageSize);        LOCAL_PAGE.set(page);    }    public static Page getPage() {        return LOCAL_PAGE.get();    } }

3.测试分页原理

/** *类描述:测试模拟分页 * *@Author:ztd *@date:2016年8月4日 *@Version:1.1.0 */public class TestPage {    public static void main(String[] args) {        int startPage = 1;        int pageSize =10;        PageHelper.startPage(startPage, pageSize);        Page page = PageHelper.getPage();        System.out.println(page.getStartPage()  + " : " + page.getPageSize());    }}
0 2
原创粉丝点击