springboot-Mybatis-中分页的使用

1、pom文件

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.1.0</version>
    </dependency>

2、类

import com.github.pagehelper.dialect.AbstractHelperDialect;
import com.github.pagehelper.page.PageAutoDialect;
import com.github.pagehelper.page.PageMethod;
import com.github.pagehelper.page.PageParams;
import org.apache.ibatis.cache.CacheKey;
import org.apache.ibatis.mapping.BoundSql;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.session.RowBounds;

import java.util.List;
import java.util.Properties;

/**

  • Mybatis - 通用分页拦截器

  • @author liuzh/abel533/isea533

  • @version 5.0.0
    */
    public class PageHelper extends PageMethod implements Dialect {
    private PageParams pageParams;
    private PageAutoDialect autoDialect;

    @Override
    public boolean skip(MappedStatement ms, Object parameterObject, RowBounds rowBounds) {
    Page page = pageParams.getPage(parameterObject, rowBounds);
    if (page == null) {
    return true;
    } else {
    autoDialect.initDelegateDialect(ms);
    return false;
    }
    }

    @Override
    public boolean beforeCount(MappedStatement ms, Object parameterObject, RowBounds rowBounds) {
    return autoDialect.getDelegate().beforeCount(ms, parameterObject, rowBounds);
    }

    @Override
    public String getCountSql(MappedStatement ms, BoundSql boundSql, Object parameterObject, RowBounds rowBounds, CacheKey countKey) {
    return autoDialect.getDelegate().getCountSql(ms, boundSql, parameterObject, rowBounds, countKey);
    }

    @Override
    public boolean afterCount(long count, Object parameterObject, RowBounds rowBounds) {
    return autoDialect.getDelegate().afterCount(count, parameterObject, rowBounds);
    }

    @Override
    public Object processParameterObject(MappedStatement ms, Object parameterObject, BoundSql boundSql, CacheKey pageKey) {
    return autoDialect.getDelegate().processParameterObject(ms, parameterObject, boundSql, pageKey);
    }

    @Override
    public boolean beforePage(MappedStatement ms, Object parameterObject, RowBounds rowBounds) {
    return autoDialect.getDelegate().beforePage(ms, parameterObject, rowBounds);
    }

    @Override
    public String getPageSql(MappedStatement ms, BoundSql boundSql, Object parameterObject, RowBounds rowBounds, CacheKey pageKey) {
    return autoDialect.getDelegate().getPageSql(ms, boundSql, parameterObject, rowBounds, pageKey);
    }

    public String getPageSql(String sql, Page page, RowBounds rowBounds, CacheKey pageKey) {
    return autoDialect.getDelegate().getPageSql(sql, page, pageKey);
    }

    @Override
    public Object afterPage(List pageList, Object parameterObject, RowBounds rowBounds) {
    //这个方法即使不分页也会被执行,所以要判断 null
    AbstractHelperDialect delegate = autoDialect.getDelegate();
    if(delegate != null){
    return delegate.afterPage(pageList, parameterObject, rowBounds);
    }
    return pageList;
    }

    @Override
    public void afterAll() {
    //这个方法即使不分页也会被执行,所以要判断 null
    AbstractHelperDialect delegate = autoDialect.getDelegate();
    if (delegate != null) {
    delegate.afterAll();
    autoDialect.clearDelegate();
    }
    clearPage();
    }

    @Override
    public void setProperties(Properties properties) {
    pageParams = new PageParams();
    autoDialect = new PageAutoDialect();
    pageParams.setProperties(properties);
    autoDialect.setProperties(properties);
    }
    }

3、使用

controller

@ResponseBody
@RequestMapping(value = “getLogFY”)
public PageInfo getTrainSchemeFY(@RequestParam(defaultValue=“1”) int pageNo, @RequestParam(value = “limit”, defaultValue = “10”) int limit,HttpServletRequest request) {

    HashMap<String,Object> conditionMap = new HashMap<String,Object>();
    //根据关键字查询
    conditionMap.put("keyword",request.getParameter("keyword"));

    pageNo = pageNo < 0 || pageNo > WebConst.MAX_PAGE ? 1 : pageNo;
    List<SystemLogVo>  logLists=systemLogService.getSystemLogs(pageNo, PageSize,conditionMap);
    PageInfo<SystemLogVo> pageInfo=new  PageInfo<SystemLogVo>(logLists);
    return pageInfo;
}

service

@Override
public List getSystemLogs(int page, int limit, HashMap conditionMap) {
if (page <= 0) {
page = 1;
}
if (limit < 1 || limit > WebConst.MAX_POSTS) {
limit = 10;
}
PageHelper.startPage(page, limit);
List dataLogVos = systemLogDao.getSystemLogs(conditionMap);
return dataLogVos;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值