Mybatis 使用PageHelper封装通用Dao分页方法

参考:

PageHelper官网:https://pagehelper.github.io/docs/howtouse/#3-%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BB%A3%E7%A0%81%E4%B8%AD%E4%BD%BF%E7%94%A8

1.业务层调用通用Dao并传入参数:映射问简中的 namespce.(CRUD标签)id,(参数对象)bean,(当前页数、当前页总条数等信息)basepage

    @SuppressWarnings("unchecked")
    @Override
    public PageResultModel<SystemBean> list(SystemBean bean, BasePage basePage) {
        PageResultModel<SystemBean> model = new PageResultModel<SystemBean>();
        if (basePage == null) {
            model.setData((List<SystemBean>) daoRouter.query("System.query", bean));
        } else {
            model.setData((List<SystemBean>) daoRouter.query("System.query", bean, basePage));
            model.setBasePage(basePage);
        }
        return model;
    }

2.通用Dao层方法 当前第几页作为开始条数参数,当前页总条数作为结束条数参数 PageHelper.startPage(startRow, pageSize, true); 接下来调用查询全部方法会自动进行分页

    public List<?> query(String statement, Object parameter, BasePage basePage) {
        int startRow = basePage.getCurrentPage();
        int pageSize = basePage.getPageSize();
        Page<Object> page = PageHelper.startPage(startRow, pageSize, true);
        List<?> list = getSqlMapClientTemplate().selectList(statement, parameter);
        basePage.setTotalItem((int) page.getTotal());
        return list;
    }

参考:https://www.cnblogs.com/ljdblog/p/6725094.html

原文地址:https://www.cnblogs.com/awzf/p/10302875.html