Mybatis实现分页的注意点

 更新时间:2017年07月19日 14:08:27   作者:Spade-A  
Mybatis提供了强大的分页拦截实现,可以完美的实现分功能。下面小编给大家分享小编在使用拦截器给mybatis进行分页所遇到的问题及注意点,需要的朋友一起看看吧

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

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

1) 使用ThreadLocal 获取

//获取ThreadLocal
private static ThreadLocal<Page> pageLocal = new ThreadLocal<Page>();
private Page getPage() {
  return pageLocal.get();
}

2) 从boundsql里面获取

BoundSql boundSql = delegate.getBoundSql();
Object parameterObject = boundSql.getParameterObject();
Page page = this.getPage(parameterObject);
private Page getPage(Object parameterObject) {
    Page page = null;
    if (parameterObject instanceof Page) {
      page = (Page) parameterObject;
    } else if (parameterObject instanceof Map) {
      for (Object val : ((Map<?, ?>) parameterObject).values()) {
        if (val instanceof Page) {
          page = (Page) val;
        }
      }
    }
    return page;
  }

2. 重载plugin方法

@Override
public Object plugin(Object target) {
  if (target instanceof StatementHandler) {
    return Plugin.wrap(target, this);
  } else {
    return target;
  }
}

总结

以上所述是小编给大家介绍的Mybatis实现分页的注意点,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • IDEA中安装和使用Lombok插件的方法

    IDEA中安装和使用Lombok插件的方法

    Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法,本文重点给大家介绍IDEA中安装和使用Lombok插件的方法,感兴趣的朋友一起看看吧
    2021-06-06
  • Spring Boot项目搭建的两种方式

    Spring Boot项目搭建的两种方式

    springboot简单快捷方便的优点深受用户喜爱,springboot开发环境搭建过程是每个开发者必须要做的工作,今天小编写的一篇教程关于Spring Boot项目搭建方法,通过两种方式给大家介绍的非常详细,需要的朋友参考下吧
    2021-06-06
  • 一文解决System.in关闭后无法再继续使用流的问题

    一文解决System.in关闭后无法再继续使用流的问题

    这篇文章主要给大家介绍如何解决System.in关闭后无法再继续使用流的问题,文中有详细的解决方法和代码示例,具有一定的参考价值,需要的朋友可以参考下
    2023-07-07
  • SpringBoot项目配置明文密码泄露问题的处理方式

    SpringBoot项目配置明文密码泄露问题的处理方式

    这篇文章主要介绍了SpringBoot项目配置明文密码泄露问题的处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Spark集群框架的搭建与入门

    Spark集群框架的搭建与入门

    Spark是专为大规模数据处理而设计的,基于内存快速通用,可扩展的集群计算引擎,实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流,运算速度相比于MapReduce得到了显著的提高。
    2021-06-06
  • Java 小游戏开发之俄罗斯方块

    Java 小游戏开发之俄罗斯方块

    这篇文章主要介绍了Java 小游戏开发之俄罗斯方块的相关资料,这里实现俄罗斯方块的实例和实现效果给大家看下,学习java基础的朋友的好资料,需要的朋友可以参考下
    2017-07-07
  • 浅析Java Scanner 类的用法

    浅析Java Scanner 类的用法

    这篇文章主要介绍了Java Scanner 类的用法,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 并发编程之Java内存模型

    并发编程之Java内存模型

    这篇文章主要介绍了Java并发编程之内存模型,Java内存模型中的顺序一致性,主要介绍重排序与顺序一致性内存模型,下面文章将围绕Java内存模型展开内容,需要的小伙伴可以参考一下
    2021-11-11
  • Struts2拦截器登录验证实例

    Struts2拦截器登录验证实例

    本篇文章主要介绍了Struts2拦截器登录验证实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 剑指Offer之Java算法习题精讲字符串操作与数组及二叉搜索树

    剑指Offer之Java算法习题精讲字符串操作与数组及二叉搜索树

    跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化
    2022-03-03

最新评论