首页 > 开发 > Java > 正文

Mybatis实现分页的注意点

2024-07-13 10:10:04
字体:
来源:转载
供稿:网友

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

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

1) 使用ThreadLocal 获取

//获取ThreadLocalprivate 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方法

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

总结

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


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表