一聚教程网:一个值得你收藏的教程网站

热门教程

Mybatis实现分页的注意点

时间:2022-06-29 01:26:12 编辑:袖梨 来源:一聚教程网

前面的话:使用拦截器给Mybatis进行分页的教程在网上有很多,这里记录的主要是我在使用的时候中间走的弯路,记录下来,也好给后面想要学习Mybatis分页拦截的小伙伴们提供点帮助。

1. 拦截器获取参数,判断是否有Page类

1) 使用ThreadLocal 获取

 

 代码如下复制代码

//获取ThreadLocal

privatestaticThreadLocalpageLocal =newThreadLocal();

privatePage getPage() {

  returnpageLocal.get();

}

 

2) 从boundsql里面获取

 

 代码如下复制代码

BoundSql boundSql = delegate.getBoundSql();

Object parameterObject = boundSql.getParameterObject();

Page page =this.getPage(parameterObject);

privatePage getPage(Object parameterObject) {

    Page page =null;

    if(parameterObjectinstanceofPage) {

      page = (Page) parameterObject;

    }elseif(parameterObjectinstanceofMap) {

      for(Object val : ((Map) parameterObject).values()) {

        if(valinstanceofPage) {

          page = (Page) val;

        }

      }

    }

    returnpage;

  }

 

2. 重载plugin方法

 

 代码如下复制代码

@Override

publicObject plugin(Object target) {

  if(targetinstanceofStatementHandler) {

    returnPlugin.wrap(target,this);

  }else{

    returntarget;

  }

}

 

 

原文链接:http://blog.csdn.net/cubic__/article/details/75353932

热门栏目