Mybatis实现分页的注意点
程序员文章站
2022-10-13 09:51:58
前面的话:使用拦截器给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实现分页的注意点,希望对大家有所帮助